# HG changeset patch # User Christian Lins # Date 1342179085 0 # Node ID 725470fc57d2447d0b433cbc2de9e9ae77d47588 # Parent d2a54ae0016be42af90a1cce6f7d8c79149d22bb Add "Manage themes" button to ChartToolbar and MapToolbar. flys-client/trunk@4991 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r d2a54ae0016b -r 725470fc57d2 flys-client/ChangeLog --- a/flys-client/ChangeLog Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/ChangeLog Fri Jul 13 11:31:25 2012 +0000 @@ -1,3 +1,22 @@ +2012-07-13 Christian Lins + + * src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties, + src/main/java/de/intevation/flys/client/client/FLYSConstants.java, + src/main/java/de/intevation/flys/client/client/FLYSConstants.properties, + src/main/java/de/intevation/flys/client/client/ui/MainMenu.java, + src/main/java/de/intevation/flys/client/client/ui/chart/ChartToolbar.java, + src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java, + src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java, + src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java, + src/main/java/de/intevation/flys/client/client/ui/CollectionView.java, + src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties: + Add "Manage Themes" button to ChartToolbar and MapToolbar to toggle themes window. + + * pom.xml: + Remove gwt-dev from dependencies as it contains an ancient Apache Commons Codec version + and add a recent version of it as separate dependency. + This fixes the nasty eclipse compile errors with Base64 class etc. + 2012-07-13 Raimund Renkert * src/main/java/de/intevation/flys/client/client/ui/chart/OverviewOutputTab.java: diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.java Fri Jul 13 11:31:25 2012 +0000 @@ -284,6 +284,8 @@ String removeTheme(); + String manageThemes(); + String label_ok(); String label_cancel(); diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.properties --- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.properties Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants.properties Fri Jul 13 11:31:25 2012 +0000 @@ -73,6 +73,7 @@ activateTheme = Activate deactivateTheme = Deactivate removeTheme = Remove +manageThemes = Manage themes label_ok = Ok label_cancel = Cancel cancelCalculationLabel = Stop the current calculation. diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties --- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_de.properties Fri Jul 13 11:31:25 2012 +0000 @@ -73,6 +73,7 @@ activateTheme = Aktivieren deactivateTheme = Deaktivieren removeTheme = Entfernen +manageThemes = Themen verwalten label_ok = Ok label_cancel = Abbrechen cancelCalculationLabel = Aktuelle Berechnung abbrechen. diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties --- a/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/FLYSConstants_en.properties Fri Jul 13 11:31:25 2012 +0000 @@ -73,6 +73,7 @@ activateTheme = Activate deactivateTheme = Deactivate removeTheme = Remove +manageThemes = Manage themes label_ok = Ok label_cancel = Cancel cancelCalculationLabel = Stop the current calculation. diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/CollectionView.java Fri Jul 13 11:31:25 2012 +0000 @@ -1,15 +1,7 @@ package de.intevation.flys.client.client.ui; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.Stack; - import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; - import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Window; import com.smartgwt.client.widgets.events.CloseClickEvent; @@ -19,6 +11,29 @@ import com.smartgwt.client.widgets.tab.TabSet; import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; +import de.intevation.flys.client.client.Config; +import de.intevation.flys.client.client.FLYS; +import de.intevation.flys.client.client.FLYSConstants; +import de.intevation.flys.client.client.event.CollectionChangeEvent; +import de.intevation.flys.client.client.event.CollectionChangeHandler; +import de.intevation.flys.client.client.event.HasCollectionChangeHandlers; +import de.intevation.flys.client.client.event.HasOutputModesChangeHandlers; +import de.intevation.flys.client.client.event.OutputModesChangeEvent; +import de.intevation.flys.client.client.event.OutputModesChangeHandler; +import de.intevation.flys.client.client.event.ParameterChangeEvent; +import de.intevation.flys.client.client.event.ParameterChangeHandler; +import de.intevation.flys.client.client.services.AddArtifactService; +import de.intevation.flys.client.client.services.AddArtifactServiceAsync; +import de.intevation.flys.client.client.services.ArtifactService; +import de.intevation.flys.client.client.services.ArtifactServiceAsync; +import de.intevation.flys.client.client.services.CollectionAttributeService; +import de.intevation.flys.client.client.services.CollectionAttributeServiceAsync; +import de.intevation.flys.client.client.services.CreateCollectionService; +import de.intevation.flys.client.client.services.CreateCollectionServiceAsync; +import de.intevation.flys.client.client.services.DescribeCollectionService; +import de.intevation.flys.client.client.services.DescribeCollectionServiceAsync; +import de.intevation.flys.client.client.services.LoadArtifactService; +import de.intevation.flys.client.client.services.LoadArtifactServiceAsync; import de.intevation.flys.client.shared.model.Artifact; import de.intevation.flys.client.shared.model.ArtifactDescription; import de.intevation.flys.client.shared.model.Collection; @@ -28,29 +43,12 @@ import de.intevation.flys.client.shared.model.ReportMode; import de.intevation.flys.client.shared.model.User; -import de.intevation.flys.client.client.Config; -import de.intevation.flys.client.client.FLYS; -import de.intevation.flys.client.client.FLYSConstants; -import de.intevation.flys.client.client.event.HasCollectionChangeHandlers; -import de.intevation.flys.client.client.event.HasOutputModesChangeHandlers; -import de.intevation.flys.client.client.event.CollectionChangeEvent; -import de.intevation.flys.client.client.event.CollectionChangeHandler; -import de.intevation.flys.client.client.event.OutputModesChangeEvent; -import de.intevation.flys.client.client.event.OutputModesChangeHandler; -import de.intevation.flys.client.client.event.ParameterChangeEvent; -import de.intevation.flys.client.client.event.ParameterChangeHandler; -import de.intevation.flys.client.client.services.ArtifactService; -import de.intevation.flys.client.client.services.ArtifactServiceAsync; -import de.intevation.flys.client.client.services.AddArtifactService; -import de.intevation.flys.client.client.services.AddArtifactServiceAsync; -import de.intevation.flys.client.client.services.CollectionAttributeService; -import de.intevation.flys.client.client.services.CollectionAttributeServiceAsync; -import de.intevation.flys.client.client.services.CreateCollectionService; -import de.intevation.flys.client.client.services.CreateCollectionServiceAsync; -import de.intevation.flys.client.client.services.DescribeCollectionService; -import de.intevation.flys.client.client.services.DescribeCollectionServiceAsync; -import de.intevation.flys.client.client.services.LoadArtifactService; -import de.intevation.flys.client.client.services.LoadArtifactServiceAsync; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.Stack; /** @@ -218,8 +216,8 @@ * This method handles the initial layout stuff. */ protected void init() { - setWidth(750); - setHeight(600); + setWidth(950); + setHeight(650); layout.setWidth100(); @@ -253,11 +251,13 @@ locale, ownerId, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("Could not create the new collection."); SC.warn(messages.getString(caught.getMessage())); } + @Override public void onSuccess(Collection collection) { GWT.log("Successfully created a new collection."); setCollection(collection); @@ -276,6 +276,7 @@ * * @param handler The new CollectionChangeHandler. */ + @Override public void addCollectionChangeHandler(CollectionChangeHandler handler) { if (handler != null) { handlers.add(handler); @@ -288,6 +289,7 @@ * * @param handler The new OutputModesChangeHandler. */ + @Override public void addOutputModesChangeHandler(OutputModesChangeHandler handler) { if (handler != null) { outHandlers.add(handler); @@ -373,6 +375,7 @@ * * @param event The ParameterChangeEvent. */ + @Override public void onParameterChange(ParameterChangeEvent event) { GWT.log("CollectionView.onParameterChange"); setArtifact(event.getNewValue()); @@ -392,12 +395,14 @@ describeCollectionService.describe(c.identifier(), locale, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("Could not DESCRIBE collection."); SC.warn(messages.getString(caught.getMessage())); } + @Override public void onSuccess(Collection newCollection) { GWT.log("Successfully DESCRIBED collection."); boolean loaded = true; @@ -459,6 +464,7 @@ } + @Override public void onCollectionChange(CollectionChangeEvent event) { if (artifactsQueue > 0) { GWT.log("Do not update UI because we are still loading Artifacts."); @@ -483,6 +489,7 @@ } + @Override public void onOutputModesChange(OutputModesChangeEvent event) { clearOutputTabs(); OutputMode[] outs = event.getOutputModes(); @@ -586,6 +593,7 @@ } + @Override public void onCloseClick(CloseClickEvent event) { if (collection != null) { flys.closeProject(collection.identifier()); @@ -605,11 +613,13 @@ addArtifactService.add( collection, artifact, locale, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("An error occured while adding artifact."); SC.warn(messages.getString(caught.getMessage())); } + @Override public void onSuccess(Collection newCollection) { GWT.log("Successfully added artifacts."); setCollection(newCollection, true); @@ -628,6 +638,7 @@ updater.update(collection, locale, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { newRecommendations.removeAllElements(); setCollection(collection); @@ -636,6 +647,7 @@ // TODO POPUP WARNING } + @Override public void onSuccess(Collection newCol) { GWT.log("Successfully saved recommendations."); newRecommendations.removeAllElements(); @@ -678,11 +690,13 @@ null, locale, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("Error loading recommendations: " + caught.getMessage()); } + @Override public void onSuccess(Artifact[] artifacts) { GWT.log("Loaded artifacts: " + artifacts.length); addRecommendationsToCollection(); diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/ui/MainMenu.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/MainMenu.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/MainMenu.java Fri Jul 13 11:31:25 2012 +0000 @@ -3,7 +3,6 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.i18n.client.LocaleInfo; import com.google.gwt.user.client.Window; - import com.smartgwt.client.types.Alignment; import com.smartgwt.client.util.BooleanCallback; import com.smartgwt.client.util.SC; @@ -24,7 +23,7 @@ public class MainMenu extends HLayout { /** The interface that provides i18n messages. */ - private FLYSConstants messages = GWT.create(FLYSConstants.class); + private final FLYSConstants messages = GWT.create(FLYSConstants.class); /** An instance to FLYS.*/ protected FLYS flys; @@ -66,6 +65,7 @@ info = new Button(messages.info()); newProject.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { GWT.log("Clicked 'New Project' button."); createNewProject(); @@ -73,6 +73,7 @@ }); projectList.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { GWT.log("Clicked 'Open ProjectList' button."); ProjectList list = getFlys().getProjectList(); @@ -84,6 +85,7 @@ }); logout.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { GWT.log("Clicked 'logout' button."); GWT.log("IMPLEMENT the 'logout' function."); @@ -91,6 +93,7 @@ }); language.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { LocaleInfo info = LocaleInfo.getCurrentLocale(); final String currentLocale = info.getLocaleName(); @@ -100,6 +103,7 @@ SC.confirm(messages.warning(), messages.warning_language(), new BooleanCallback() { + @Override public void execute(Boolean value) { if (value) { switchLanguage(currentLocale, newLocale); @@ -110,6 +114,7 @@ }); info.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { GWT.log("Clicked 'info' button."); GWT.log("IMPLEMENT the 'open info panel' function."); @@ -226,8 +231,6 @@ protected void switchLanguage(String currentLocale, String newLocale) { String newLocation = Window.Location.getHref(); - String oldLocation = newLocation; - if (newLocation.endsWith("/")) { newLocation = newLocation.substring(0, newLocation.length()-1); } diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartOutputTab.java Fri Jul 13 11:31:25 2012 +0000 @@ -1,44 +1,40 @@ package de.intevation.flys.client.client.ui.chart; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.Stack; - import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; - import com.smartgwt.client.types.Overflow; - import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.Img; - +import com.smartgwt.client.widgets.events.ResizedEvent; +import com.smartgwt.client.widgets.events.ResizedHandler; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; -import com.smartgwt.client.widgets.events.ResizedEvent; -import com.smartgwt.client.widgets.events.ResizedHandler; - +import de.intevation.flys.client.client.Config; +import de.intevation.flys.client.client.event.OutputParameterChangeEvent; +import de.intevation.flys.client.client.event.OutputParameterChangeHandler; +import de.intevation.flys.client.client.event.PanEvent; +import de.intevation.flys.client.client.event.PanHandler; +import de.intevation.flys.client.client.event.RedrawRequestEvent; +import de.intevation.flys.client.client.event.RedrawRequestEvent.Type; +import de.intevation.flys.client.client.event.RedrawRequestHandler; +import de.intevation.flys.client.client.event.ZoomEvent; +import de.intevation.flys.client.client.event.ZoomHandler; +import de.intevation.flys.client.client.services.ChartInfoService; +import de.intevation.flys.client.client.services.ChartInfoServiceAsync; +import de.intevation.flys.client.client.ui.CollectionView; +import de.intevation.flys.client.client.ui.OutputTab; import de.intevation.flys.client.shared.Transform2D; import de.intevation.flys.client.shared.model.Axis; import de.intevation.flys.client.shared.model.ChartInfo; import de.intevation.flys.client.shared.model.Collection; import de.intevation.flys.client.shared.model.OutputMode; import de.intevation.flys.client.shared.model.ZoomObj; -import de.intevation.flys.client.client.Config; -import de.intevation.flys.client.client.event.OutputParameterChangeEvent; -import de.intevation.flys.client.client.event.OutputParameterChangeHandler; -import de.intevation.flys.client.client.event.PanEvent; -import de.intevation.flys.client.client.event.PanHandler; -import de.intevation.flys.client.client.event.RedrawRequestHandler; -import de.intevation.flys.client.client.event.RedrawRequestEvent; -import de.intevation.flys.client.client.event.RedrawRequestEvent.Type; -import de.intevation.flys.client.client.event.ZoomEvent; -import de.intevation.flys.client.client.event.ZoomHandler; -import de.intevation.flys.client.client.services.ChartInfoService; -import de.intevation.flys.client.client.services.ChartInfoServiceAsync; -import de.intevation.flys.client.client.ui.CollectionView; -import de.intevation.flys.client.client.ui.OutputTab; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.Stack; /** @@ -166,12 +162,18 @@ } + public void toggleThemePanel() { + this.left.setVisible(!left.isVisible()); + } + + /** * This method is called after the chart panel has resized. It removes the * chart - if existing - and requests a new one with adjusted size. * * @param event The resize event. */ + @Override public void onResized(ResizedEvent event) { updateChartPanel(); updateChartInfo(); @@ -180,6 +182,7 @@ /** For RESET type of events, just reset the ranges, otherwise do a * complete refresh of panel, info and collection. */ + @Override public void onRedrawRequest(RedrawRequestEvent event) { if (event.getType() == Type.RESET) { resetRanges(); @@ -198,6 +201,7 @@ * * @param event The OutputParameterChangeEvent. */ + @Override public void onOutputParameterChanged(OutputParameterChangeEvent event) { updateChartInfo(); updateChartPanel(); @@ -209,6 +213,7 @@ * * @param evt The ZoomEvent that stores the coordinates for zooming. */ + @Override public void onZoom(ZoomEvent evt) { zoomStack.push(new ZoomObj(zoom[0], zoom[1], zoom[2], zoom[3])); @@ -282,6 +287,7 @@ } + @Override public void onPan(PanEvent event) { if (chartInfo == null) { return; @@ -451,10 +457,12 @@ mode.getName(), getChartAttributes(), new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("ChartInfo ERROR: " + caught.getMessage()); } + @Override public void onSuccess(ChartInfo chartInfo) { setChartInfo(chartInfo); } diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartToolbar.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartToolbar.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/chart/ChartToolbar.java Fri Jul 13 11:31:25 2012 +0000 @@ -1,7 +1,6 @@ package de.intevation.flys.client.client.ui.chart; import com.google.gwt.core.client.GWT; - import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.ImgButton; @@ -30,34 +29,20 @@ public static final int PANEL_HEIGHT = 30; - protected ChartOutputTab chartTab; - + protected Button manageThemes; protected Button datacage; - protected ImgLink downloadPNG; - protected ImgLink downloadPDF; - protected ImgLink downloadSVG; - protected Canvas downloadCSV; - protected MousePositionPanel position; - protected ZoomboxControl zoombox; - protected ImgButton zoomToMaxExtent; - protected ImgButton historyBack; - protected ImgButton zoomOut; - protected ImgButton chartProperties; - protected Button addPoints; - protected Button addWSP; - protected PanControl panControl; @@ -65,7 +50,7 @@ public ChartToolbar(ChartOutputTab chartTab) { super(chartTab); - this.chartTab = chartTab; + manageThemes = new Button(MSG.manageThemes()); datacage = new Button(MSG.databasket()); position = new MousePositionPanel(chartTab); zoombox = new ZoomboxControl(chartTab, MSG.zoom_in()); @@ -76,11 +61,12 @@ chartProperties = new ImgButton(); addPoints = new Button(MSG.points()); - if (this.chartTab.getMode().getName().equals("cross_section")) { + if (chartTab.getMode().getName().equals("cross_section")) { addWSP = new Button(MSG.addWSPButton()); addWSP.setTooltip(MSG.addWSPTooltip()); final ChartOutputTab finalChartTab = chartTab; addWSP.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent ce) { new ManualWSPEditor(finalChartTab.getView().getCollection(), finalChartTab, finalChartTab.getMode().getName()).show(); @@ -88,13 +74,23 @@ } addPoints.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { openPointWindow(); } }); addPoints.setTooltip(MSG.addPointsTooltip()); + manageThemes.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + getChartOutputTab().toggleThemePanel(); + } + }); + datacage.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { GWT.log("Clicked 'datacage' button."); openDatacageWindow((ChartOutputTab) getOutputTab()); @@ -134,6 +130,7 @@ zoomToMaxExtent.setSrc(baseUrl + MSG.zoom_all()); adjustImageButton(zoomToMaxExtent); zoomToMaxExtent.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { getChartOutputTab().resetRanges(); // Relink the export buttons. @@ -145,6 +142,7 @@ zoomOut.setSrc(baseUrl + MSG.zoom_out()); adjustImageButton(zoomOut); zoomOut.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { getChartOutputTab().zoomOut(10); // Relink the export buttons. @@ -156,6 +154,7 @@ historyBack.setSrc(baseUrl + MSG.zoom_back()); adjustImageButton(historyBack); historyBack.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { getChartOutputTab().zoomOut(); // Relink the export buttons. @@ -167,6 +166,7 @@ zoombox.addZoomHandler(chartTab); zoombox.addZoomHandler(this); zoombox.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { panControl.deselect(); } @@ -175,6 +175,7 @@ panControl.addPanHandler(chartTab); panControl.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { zoombox.deselect(); } @@ -184,6 +185,7 @@ chartProperties.setSrc(baseUrl + MSG.properties_ico()); adjustImageButton(chartProperties); chartProperties.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent event) { openPropertiesEditor(); } @@ -192,6 +194,7 @@ initLayout(); addResizedHandler(new ResizedHandler() { + @Override public void onResized(ResizedEvent e) { if (getVisibleWidth() < 740) { setHeight(55); @@ -217,8 +220,8 @@ } - public ChartOutputTab getChartOutputTab() { - return chartTab; + private ChartOutputTab getChartOutputTab() { + return (ChartOutputTab)getOutputTab(); } @@ -234,6 +237,7 @@ datacage.setWidth("95px"); position.setWidth("200px"); + addMember(manageThemes); addMember(datacage); addMember(downloadPNG); addMember(downloadPDF); @@ -247,7 +251,7 @@ addMember(chartProperties); addMember(addPoints); - if (this.chartTab.getMode().getName().equals("cross_section")) { + if (getChartOutputTab().getMode().getName().equals("cross_section")) { addMember(addWSP); } @@ -267,13 +271,14 @@ /** Open editor for custom points. */ protected void openPointWindow() { - if (this.chartTab.getMode().getName().equals("historical_discharge")) { + ChartOutputTab chartTab = getChartOutputTab(); + if (chartTab.getMode().getName().equals("historical_discharge")) { new ManualDatePointsEditor(chartTab.getView().getCollection(), - this.chartTab, this.chartTab.getMode().getName()).show(); + chartTab, chartTab.getMode().getName()).show(); } else { new ManualPointsEditor(chartTab.getView().getCollection(), - this.chartTab, this.chartTab.getMode().getName()).show(); + chartTab, chartTab.getMode().getName()).show(); } } @@ -283,7 +288,9 @@ * correct zoom values are included in the request when clicked. * @param evt ignored. */ + @Override public void onZoom(ZoomEvent evt) { + ChartOutputTab chartTab = getChartOutputTab(); downloadPNG.setSource(chartTab.getExportUrl(-1, -1, "png")); downloadPDF.setSource(chartTab.getExportUrl(-1, -1, "pdf")); downloadSVG.setSource(chartTab.getExportUrl(-1, -1, "svg")); diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapOutputTab.java Fri Jul 13 11:31:25 2012 +0000 @@ -1,35 +1,31 @@ package de.intevation.flys.client.client.ui.map; -import java.util.List; - import com.google.gwt.core.client.GWT; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Widget; - import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.events.ResizedEvent; import com.smartgwt.client.widgets.events.ResizedHandler; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; +import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; import com.smartgwt.client.widgets.tab.events.TabSelectedHandler; -import com.smartgwt.client.widgets.tab.events.TabSelectedEvent; -import org.gwtopenmaps.openlayers.client.Bounds; -import org.gwtopenmaps.openlayers.client.Map; -import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener; -import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener.FeatureAddedEvent; -import org.gwtopenmaps.openlayers.client.event.VectorFeatureRemovedListener; -import org.gwtopenmaps.openlayers.client.event.VectorFeatureRemovedListener.FeatureRemovedEvent; -import org.gwtopenmaps.openlayers.client.feature.VectorFeature; -import org.gwtopenmaps.openlayers.client.format.GeoJSON; -import org.gwtopenmaps.openlayers.client.layer.Layer; -import org.gwtopenmaps.openlayers.client.layer.Vector; -import org.gwtopenmaps.openlayers.client.layer.WMS; -import org.gwtopenmaps.openlayers.client.layer.WMSParams; -import org.gwtopenmaps.openlayers.client.layer.WMSOptions; - +import de.intevation.flys.client.client.Config; +import de.intevation.flys.client.client.FLYSConstants; +import de.intevation.flys.client.client.event.RedrawRequestEvent; +import de.intevation.flys.client.client.event.RedrawRequestHandler; +import de.intevation.flys.client.client.services.LoadArtifactService; +import de.intevation.flys.client.client.services.LoadArtifactServiceAsync; +import de.intevation.flys.client.client.services.MapOutputService; +import de.intevation.flys.client.client.services.MapOutputServiceAsync; +import de.intevation.flys.client.client.services.StepForwardService; +import de.intevation.flys.client.client.services.StepForwardServiceAsync; +import de.intevation.flys.client.client.ui.CollectionView; +import de.intevation.flys.client.client.ui.OutputTab; +import de.intevation.flys.client.client.ui.ThemePanel; import de.intevation.flys.client.shared.model.Artifact; import de.intevation.flys.client.shared.model.ArtifactDescription; import de.intevation.flys.client.shared.model.AttributedTheme; @@ -40,25 +36,25 @@ import de.intevation.flys.client.shared.model.DefaultData; import de.intevation.flys.client.shared.model.DefaultDataItem; import de.intevation.flys.client.shared.model.MapConfig; +import de.intevation.flys.client.shared.model.OutputMode; import de.intevation.flys.client.shared.model.Recommendation; import de.intevation.flys.client.shared.model.Theme; import de.intevation.flys.client.shared.model.ThemeList; -import de.intevation.flys.client.shared.model.OutputMode; import de.intevation.flys.client.shared.model.WMSLayer; -import de.intevation.flys.client.client.Config; -import de.intevation.flys.client.client.FLYSConstants; -import de.intevation.flys.client.client.services.LoadArtifactService; -import de.intevation.flys.client.client.services.LoadArtifactServiceAsync; -import de.intevation.flys.client.client.services.StepForwardService; -import de.intevation.flys.client.client.services.StepForwardServiceAsync; -import de.intevation.flys.client.client.services.MapOutputService; -import de.intevation.flys.client.client.services.MapOutputServiceAsync; -import de.intevation.flys.client.client.event.RedrawRequestHandler; -import de.intevation.flys.client.client.event.RedrawRequestEvent; -import de.intevation.flys.client.client.ui.CollectionView; -import de.intevation.flys.client.client.ui.OutputTab; -import de.intevation.flys.client.client.ui.ThemePanel; +import java.util.List; + +import org.gwtopenmaps.openlayers.client.Bounds; +import org.gwtopenmaps.openlayers.client.Map; +import org.gwtopenmaps.openlayers.client.event.VectorFeatureAddedListener; +import org.gwtopenmaps.openlayers.client.event.VectorFeatureRemovedListener; +import org.gwtopenmaps.openlayers.client.feature.VectorFeature; +import org.gwtopenmaps.openlayers.client.format.GeoJSON; +import org.gwtopenmaps.openlayers.client.layer.Layer; +import org.gwtopenmaps.openlayers.client.layer.Vector; +import org.gwtopenmaps.openlayers.client.layer.WMS; +import org.gwtopenmaps.openlayers.client.layer.WMSOptions; +import org.gwtopenmaps.openlayers.client.layer.WMSParams; public class MapOutputTab @@ -88,6 +84,7 @@ protected MapToolbar controlPanel; protected ThemePanel themePanel; + protected Canvas themePanelCanvas; protected Widget mapPanel; protected FloodMap floodMap; @@ -104,10 +101,12 @@ collectionView.registerTabHandler(this); mapService.doOut(collection, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("MAP ERROR: " + caught.getMessage()); } + @Override public void onSuccess(MapConfig c) { GWT.log("MAP SUCCESS!"); @@ -144,7 +143,7 @@ hlayout.setWidth100(); hlayout.setMembersMargin(2); - final Canvas themePanelWrapper = createThemePanel(); + this.themePanelCanvas = createThemePanel(); controlPanel = createControlPanel(); mapPanel = floodMap.getMapWidget(); @@ -153,16 +152,17 @@ layout.setHeight("99%"); layout.add(mapPanel); - hlayout.addMember(themePanelWrapper); + hlayout.addMember(themePanelCanvas); hlayout.addMember(layout); rootLayout.addMember(controlPanel); rootLayout.addMember(hlayout); hlayout.addResizedHandler(new ResizedHandler() { + @Override public void onResized(ResizedEvent e) { Integer height = hlayout.getHeight(); - Integer width = hlayout.getWidth() - themePanelWrapper.getWidth(); + Integer width = hlayout.getWidth() - themePanelCanvas.getWidth(); height = height * 99 / 100; width = width * 99 / 100; @@ -182,6 +182,7 @@ Vector vector = floodMap.getBarrierLayer(); vector.addVectorFeatureAddedListener( new VectorFeatureAddedListener() { + @Override public void onFeatureAdded(FeatureAddedEvent e) { saveBarriers(); } @@ -190,6 +191,7 @@ vector.addVectorFeatureRemovedListener( new VectorFeatureRemovedListener() { + @Override public void onFeatureRemoved(FeatureRemovedEvent e) { saveBarriers(); } @@ -246,10 +248,12 @@ @Override public void onRedrawRequest(RedrawRequestEvent event) { mapService.doOut(collection, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("MAP ERROR: " + caught.getMessage()); } + @Override public void onSuccess(MapConfig c) { GWT.log("We want to refresh the map now!"); themePanel.updateCollection(); @@ -407,8 +411,8 @@ AttributedTheme at = (AttributedTheme) theme; - String type = at.getAttr("name"); - String desc = at.getAttr("description"); + //String type = at.getAttr("name"); + //String desc = at.getAttr("description"); String url = at.getAttr("url"); String layers = at.getAttr("layers"); @@ -454,11 +458,13 @@ mode, this, new MapThemePanel.ActivateCallback() { + @Override public void activate(Theme theme, boolean active) { activateTheme(theme, active); } }, new MapThemePanel.ThemeMovedCallback() { + @Override public void onThemeMoved(Theme theme, int oldIdx, int newIdx) { // this code synchronizes the ThemePanel and the OpenLayers // internal order of layers. @@ -479,6 +485,7 @@ } }, new MapThemePanel.LayerZoomCallback() { + @Override public void onLayerZoom(Theme theme, String extent) { Bounds zoomTo = boundsFromString(extent); @@ -530,11 +537,13 @@ feedService.go(locale, getArtifact(), new Data[] { data }, new AsyncCallback() { + @Override public void onFailure(Throwable caught) { GWT.log("Could not save barrier geometries: " + caught.getMessage()); } + @Override public void onSuccess(Artifact artifact) { GWT.log("Successfully saved barrier geometries."); } @@ -543,6 +552,7 @@ } + @Override public void onTabSelected(TabSelectedEvent tse) { if(floodMap == null) { return; @@ -555,5 +565,9 @@ floodMap.activateScaleLine(false); } } + + public void toogleThemePanel() { + this.themePanelCanvas.setVisible(!themePanelCanvas.isVisible()); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java --- a/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/client/ui/map/MapToolbar.java Fri Jul 13 11:31:25 2012 +0000 @@ -1,7 +1,6 @@ package de.intevation.flys.client.client.ui.map; import com.google.gwt.core.client.GWT; - import com.smartgwt.client.types.Alignment; import com.smartgwt.client.types.SelectionType; import com.smartgwt.client.util.SC; @@ -11,9 +10,15 @@ import com.smartgwt.client.widgets.Label; import com.smartgwt.client.widgets.events.ClickEvent; import com.smartgwt.client.widgets.events.ClickHandler; -import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.events.ResizedEvent; import com.smartgwt.client.widgets.events.ResizedHandler; +import com.smartgwt.client.widgets.layout.HLayout; + +import de.intevation.flys.client.client.FLYSConstants; +import de.intevation.flys.client.client.ui.ImgLink; +import de.intevation.flys.client.client.ui.Toolbar; +import de.intevation.flys.client.client.utils.EnableDisableCmd; +import de.intevation.flys.client.shared.model.Collection; import org.gwtopenmaps.openlayers.client.Bounds; import org.gwtopenmaps.openlayers.client.Map; @@ -21,19 +26,11 @@ import org.gwtopenmaps.openlayers.client.control.SelectFeature; import org.gwtopenmaps.openlayers.client.control.SelectFeatureOptions; import org.gwtopenmaps.openlayers.client.control.ZoomBox; +import org.gwtopenmaps.openlayers.client.event.MapZoomListener; import org.gwtopenmaps.openlayers.client.feature.VectorFeature; import org.gwtopenmaps.openlayers.client.layer.Vector; import org.gwtopenmaps.openlayers.client.util.Attributes; -import org.gwtopenmaps.openlayers.client.event.MapZoomListener; - -import de.intevation.flys.client.client.FLYSConstants; -import de.intevation.flys.client.client.ui.Toolbar; -import de.intevation.flys.client.client.ui.ImgLink; -import de.intevation.flys.client.client.utils.EnableDisableCmd; -import de.intevation.flys.client.shared.model.ThemeList; -import de.intevation.flys.client.shared.model.Collection; - /** * @author Ingo Weinzierl @@ -50,6 +47,7 @@ protected SelectFeature selectFeature; protected GetFeatureInfo getFeatureInfo; + protected Button manageThemesButton; protected Button datacageButton; protected ImgButton addWMSButton; @@ -109,6 +107,9 @@ epsgLabel = createEPSGLabel(); if (mapTab != null) { + manageThemesButton = createManageThemesControl(); + addMember(manageThemesButton); + datacageButton = createDatacageControl(); addMember(datacageButton); @@ -139,6 +140,7 @@ addMember(createRightPanel()); addResizedHandler(new ResizedHandler() { + @Override public void onResized(ResizedEvent e) { if (getVisibleWidth() < 656) { setHeight(55); @@ -267,6 +269,7 @@ btn.setShowRollOverIcon(false); btn.setSelected(false); btn.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent e) { if (btn.isSelected()) { cmd.enable(); @@ -295,6 +298,7 @@ protected ImgButton createMaxExtentControl() { ImgButton zoomToMax = createButton(MSG.zoom_all(), new ClickHandler() { + @Override public void onClick(ClickEvent event) { floodMap.getMap().zoomToMaxExtent(); } @@ -310,6 +314,7 @@ zoomBox = new ZoomBox(); EnableDisableCmd cmd = new EnableDisableCmd() { + @Override public void enable() { activatePan(false); activateDrawFeature(false); @@ -319,6 +324,7 @@ activateZoomBox(true); } + @Override public void disable() { activateZoomBox(false); } @@ -336,6 +342,7 @@ protected ImgButton createZoomOutControl() { ImgButton zoomOut = createButton(MSG.zoom_out(), new ClickHandler() { + @Override public void onClick(ClickEvent event) { Map map = floodMap.getMap(); int level = map.getZoom(); @@ -357,6 +364,7 @@ getMap().addControl(pan); EnableDisableCmd cmd = new EnableDisableCmd() { + @Override public void enable() { activateZoomBox(false); activateDrawFeature(false); @@ -366,6 +374,7 @@ activatePan(true); } + @Override public void disable() { activatePan(false); } @@ -380,6 +389,7 @@ protected DrawControl createDrawControl() { EnableDisableCmd cmd = new EnableDisableCmd() { + @Override public void enable() { activateZoomBox(false); activatePan(false); @@ -388,6 +398,7 @@ activateMeasureControl(false); } + @Override public void disable() { activateDrawFeature(false); } @@ -408,12 +419,14 @@ // this doesn't work here. After a feature has been selected, the layer // still has no selected features. opts.onSelect(new SelectFeature.SelectFeatureListener() { + @Override public void onFeatureSelected(VectorFeature feature) { floodMap.selectFeature(feature); } }); opts.onUnSelect(new SelectFeature.UnselectFeatureListener() { + @Override public void onFeatureUnselected(VectorFeature feature) { floodMap.disableFeature(feature); } @@ -423,6 +436,7 @@ getMap().addControl(selectFeature); EnableDisableCmd cmd = new EnableDisableCmd() { + @Override public void enable() { activateDrawFeature(false); activatePan(false); @@ -431,6 +445,7 @@ activateMeasureControl(false); } + @Override public void disable() { activateSelectFeature(false); floodMap.disableFeatures(); @@ -446,6 +461,7 @@ protected ImgButton createRemoveFeatureControl() { ImgButton remove = createButton(MSG.removeFeature(),new ClickHandler() { + @Override public void onClick(ClickEvent event) { Vector barriers = floodMap.getBarrierLayer(); VectorFeature[] features = barriers.getFeatures(); @@ -476,6 +492,7 @@ protected ImgButton createElevationControl() { ImgButton btn = createButton(MSG.adjustElevation(), new ClickHandler() { + @Override public void onClick(ClickEvent evt) { Vector barriers = floodMap.getBarrierLayer(); VectorFeature[] features = barriers.getFeatures(); @@ -527,6 +544,7 @@ protected MeasureControl createMeasureControl() { EnableDisableCmd cmd = new EnableDisableCmd() { + @Override public void enable() { activateDrawFeature(false); activatePan(false); @@ -535,6 +553,7 @@ activateGetFeatureInfo(false); } + @Override public void disable() { // do nothing } @@ -547,6 +566,7 @@ protected Button createDatacageControl() { Button btn = new Button(MSG.databasket()); btn.addClickHandler(new ClickHandler() { + @Override public void onClick(ClickEvent evt) { openDatacageWindow((MapOutputTab) getOutputTab()); } @@ -562,7 +582,7 @@ return null; } - ThemeList tl = ot.getCollection().getThemeList("floodmap"); + //ThemeList tl = ot.getCollection().getThemeList("floodmap"); getFeatureInfo = new GetFeatureInfo( getMap(), @@ -570,6 +590,7 @@ "gml"); EnableDisableCmd cmd = new EnableDisableCmd() { + @Override public void enable() { activateDrawFeature(false); activatePan(false); @@ -579,6 +600,7 @@ activateGetFeatureInfo(true); } + @Override public void disable() { activateGetFeatureInfo(false); } @@ -591,10 +613,24 @@ } + protected Button createManageThemesControl() { + Button btn = new Button(MSG.manageThemes()); + btn.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + ((MapOutputTab)getOutputTab()).toogleThemePanel(); + } + }); + return btn; + } + + protected ImgButton createWMSControl() { final String srs = floodMap.getRiverProjection(); ImgButton add = createButton(MSG.addWMS(), new ClickHandler() { + @Override public void onClick(ClickEvent event) { MapOutputTab ot = (MapOutputTab) getOutputTab(); new ExternalWMSWindow(ot, srs).start(); diff -r d2a54ae0016b -r 725470fc57d2 flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Signature.java --- a/flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Signature.java Fri Jul 13 10:09:20 2012 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/auth/was/Signature.java Fri Jul 13 11:31:25 2012 +0000 @@ -7,7 +7,6 @@ import org.apache.commons.codec.binary.Base64; import org.apache.log4j.Logger; - import org.jdom.Element; public class Signature { @@ -19,7 +18,7 @@ private static final String XML_SIG_SIGNATURE_RSA_SHA1 = "http://www.w3.org/2000/09/xmldsig#rsa-sha1"; - private Element signature; + private final Element signature; private Certificate cert; private byte[] value; private byte[] digestvalue;