public LoadKmlFromUrlTreeAction(TreePanel theTree) { super( theTree, AbstractImagePrototype.create(LayerResources.ICONS.loadKmlFromURL()), LayerModuleConstants.INSTANCE.LoadKmlFromUrlTreeAction_tooltipText()); this.kmlWidget = new LoadKmlFromUrlWidget(theTree); }
public static void setTreePanel(GPTreePanel<GPBeanTreeModel> treePanel) { TreeContextMenuFactory.treePanel = treePanel; pasteAction = new PasteLayerAction(treePanel); pasteMenuItem = new MenuItem("Paste in Folder"); pasteMenuItem.setIcon(LayerResources.ICONS.paste()); pasteMenuItem.setEnabled(Boolean.FALSE); pasteMenuItem.addSelectionListener(pasteAction); }
@Override public void finalizeInitOperations() { super.finalizeInitOperations(); super.selectButton.setText( LayerModuleConstants.INSTANCE.GPProjectSearchPanel_selectButtonText()); super.search.setFieldLabel( LayerModuleConstants.INSTANCE.GPProjectSearchPanel_searchlabelText()); GPProjectAction action = new GPProjectAction(GPTrustedLevel.HIGH, this); GPSecureButton addProjectButton = new GPSecureButton( ButtonsConstants.INSTANCE.addText(), AbstractImagePrototype.create(LayerResources.ICONS.projectAdd()), action); super.addButton(1, addProjectButton); addProjectButton.disable(); this.editButton = new GPSecureButton( ButtonsConstants.INSTANCE.editText(), AbstractImagePrototype.create(BasicWidgetResources.ICONS.edit()), action); this.editButton.disable(); super.addButton(2, this.editButton); this.deleteButton = new GPSecureButton( ButtonsConstants.INSTANCE.deleteText(), AbstractImagePrototype.create(LayerResources.ICONS.projectDelete()), new DeleteProjectAction(GPTrustedLevel.FULL, this)); this.deleteButton.disable(); super.addButton(3, this.deleteButton); ShareProjectAction shareProjectAction = new ShareProjectAction(GPTrustedLevel.HIGH, this); this.shareButton = new GPSecureButton( ButtonsConstants.INSTANCE.shareText(), AbstractImagePrototype.create(LayerResources.ICONS.arrowRefresh()), shareProjectAction); this.shareButton.disable(); super.addButton(4, this.shareButton); }
public static Menu getFolderContextMenu() { if (folderContextMenu == null) { folderContextMenu = new Menu(); folderContextMenu.add(pasteMenuItem); MenuItem folderRename = new MenuItem(); folderRename.setText("Rename Folder"); folderRename.setIcon(LayerResources.ICONS.editFolder()); folderRename.addSelectionListener(new ShowFolderRenameAction(treePanel)); folderContextMenu.add(folderRename); MenuItem createViewportFolderMenu = new MenuItem(); createViewportFolderMenu.setText("Create Viewport"); createViewportFolderMenu.setIcon(BasicWidgetResources.ICONS.viewport()); createViewportFolderMenu.addSelectionListener(new CreateFolderViewportAction(treePanel)); folderContextMenu.add(createViewportFolderMenu); } return folderContextMenu; }
public static Menu getMultiSelectionMenu(boolean isOnlyLayers) { if (multipleSelectionContextMenu == null) { multipleSelectionContextMenu = new Menu(); DeleteElementsMenuAction deleteElementsMenuAction = new DeleteElementsMenuAction(treePanel); MenuItem deleteElements = new MenuItem(); deleteElements.setText(deleteElementsMenuAction.getTitle()); deleteElements.setIcon(deleteElementsMenuAction.getImage()); deleteElements.addSelectionListener(deleteElementsMenuAction); multipleSelectionContextMenu.add(deleteElements); copyMultiLayers = new MenuItem("Copy Layers"); copyMultiLayers.setIcon(LayerResources.ICONS.copy()); copyMultiLayers.addSelectionListener( new CopyLayerAction(treePanel, pasteAction, pasteMenuItem)); } if (isOnlyLayers) { multipleSelectionContextMenu.add(copyMultiLayers); } else if (multipleSelectionContextMenu.getItems().contains(copyMultiLayers)) { multipleSelectionContextMenu.remove(copyMultiLayers); } return multipleSelectionContextMenu; }
/** * @author Nazzareno Sileno - CNR IMAA geoSDI Group * @email [email protected] */ public class LayerTimeFilterWidget extends GeoPlatformWindow { public static final String LAYER_TIME_DELIMITER = " - ["; private static final short WIDGET_HEIGHT = 250; private static final short WIDGET_WIDTH = 400; private final TimeFilterLayerMapEvent timeFilterLayerMapEvent = new TimeFilterLayerMapEvent(); private final GPTreeLabelEvent labelEvent = new TreeChangeLabelEvent(); private NumberField startFilterNumberField; private NumberField endFilterNumberField; private ComboBox<DimensionData> startDimensionComboBox; private ComboBox<DimensionData> endDimensionComboBox; private ListStore<DimensionData> startStore; private ListStore<DimensionData> endStore; private GPTreePanel<GPBeanTreeModel> treePanel; private Label dimensionSizeLabel; private final Radio fixedDimensionRadio = new Radio(); private final Radio variableDimensionRadio = new Radio(); private final LayoutContainer fixedDimensionContainer = new LayoutContainer(new FormLayout()); private final LayoutContainer variableDimensionContainer; private RadioGroup dimensionRadioGroup; private SelectionListener<ButtonEvent> applyFilterSelectionListener; private Label endTimeLabel; private Label startTimeLabel; private Timer animationTimer; private SelectionListener<ButtonEvent> playSelectioListener; private ToggleButton playButton = new ToggleButton( ButtonsConstants.INSTANCE.playText(), AbstractImagePrototype.create(LayerResources.ICONS.playTime())); private Slider slider; private CheckBox rangeCheckBox; public LayerTimeFilterWidget(boolean lazy, GPTreePanel<GPBeanTreeModel> treePanel) { super(lazy); this.variableDimensionContainer = new LayoutContainer(new FormLayout()) { @Override protected void onAttach() { super.onAttach(); playButton.enable(); } @Override protected void onHide() { super.onHide(); stopPlayer(); playButton.disable(); } @Override protected void onShow() { super.onShow(); playButton.enable(); } @Override protected void onDetach() { super.onDetach(); stopPlayer(); playButton.disable(); } }; this.treePanel = treePanel; } @Override public void addComponent() { this.dimensionRadioGroup = new RadioGroup(); this.dimensionRadioGroup.setFieldLabel( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_dimensionRadioLabelText()); fixedDimensionRadio.setBoxLabel( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_fixedDimensionRadioLabelText()); fixedDimensionRadio.setHideLabel(Boolean.TRUE); this.dimensionRadioGroup.add(fixedDimensionRadio); variableDimensionRadio.setBoxLabel( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_variableDimensionRadioLabelText()); variableDimensionRadio.setHideLabel(Boolean.TRUE); this.dimensionRadioGroup.add(variableDimensionRadio); this.fixedDimensionContainer.setVisible(Boolean.FALSE); this.variableDimensionContainer.setVisible(Boolean.FALSE); this.fixedDimensionRadio.addListener( Events.Change, new Listener<FieldEvent>() { @Override public void handleEvent(FieldEvent fe) { if (fixedDimensionRadio.getValue()) { fixedDimensionContainer.setVisible(Boolean.TRUE); variableDimensionContainer.setVisible(Boolean.FALSE); } } }); this.variableDimensionRadio.addListener( Events.Change, new Listener<FieldEvent>() { @Override public void handleEvent(FieldEvent fe) { if (variableDimensionRadio.getValue()) { variableDimensionContainer.setVisible(Boolean.TRUE); fixedDimensionContainer.setVisible(Boolean.FALSE); } } }); this.startStore = new ListStore<DimensionData>(); this.startDimensionComboBox = new ComboBox<DimensionData>(); this.startDimensionComboBox.setFieldLabel( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_startDimensionComboLabelText()); this.startDimensionComboBox.setStore(this.startStore); this.startDimensionComboBox.setDisplayField(DimensionData.DIMENSION_KEY); this.startDimensionComboBox.setEditable(Boolean.FALSE); this.startDimensionComboBox.addSelectionChangedListener( new SelectionChangedListener<DimensionData>() { @Override public void selectionChanged(SelectionChangedEvent<DimensionData> se) { if (se.getSelectedItem() != null) { endStore.removeAll(); int indexStart = startStore.getModels().indexOf(se.getSelectedItem()) + 1; // System.out.println("Sublist start: " + indexStart); // System.out.println("Sublist end: " + // (startStore.getModels().size() - 1)); if (indexStart < startStore.getModels().size()) { endDimensionComboBox.enable(); endStore.add( startStore .getModels() .subList( startStore.indexOf(se.getSelectedItem()) + 1, startStore.getModels().size())); } else { endDimensionComboBox.disable(); } } } }); this.endStore = new ListStore<DimensionData>(); this.endDimensionComboBox = new ComboBox<DimensionData>(); this.endDimensionComboBox.setFieldLabel( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_endDimensionComboLabelText()); this.endDimensionComboBox.setStore(this.endStore); this.endDimensionComboBox.setDisplayField(DimensionData.DIMENSION_KEY); this.endDimensionComboBox.disable(); this.endDimensionComboBox.setEditable(Boolean.FALSE); dimensionSizeLabel = new Label(); dimensionSizeLabel.setStyleAttribute("font-size", "12px"); this.startFilterNumberField = new NumberField(); this.startFilterNumberField.setFireChangeEventOnSetValue(Boolean.TRUE); this.startFilterNumberField.addListener( Events.Change, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { if (checkStartFieldValue()) { int fromFilter = startFilterNumberField.getValue().intValue(); int position = startStore.getModels().size() - fromFilter - 1; String tooltip = (String) startStore.getModels().get(position).get(DimensionData.DIMENSION_KEY); // startStore.getModels().size() - fromFilter - 1).get( startFilterNumberField.setToolTip(tooltip); startTimeLabel.setHtml(tooltip); slider.setValue(position); } else { startTimeLabel.setHtml(""); startFilterNumberField.setToolTip(""); } } }); startTimeLabel = new Label(); startTimeLabel.setStyleAttribute("font-size", "1.3em"); this.startFilterNumberField.setSize(50, 30); this.endFilterNumberField = new NumberField(); this.endFilterNumberField.setFireChangeEventOnSetValue(Boolean.TRUE); endTimeLabel = new Label(); endTimeLabel.setStyleAttribute("font-size", "1.3em"); this.endFilterNumberField.addListener( Events.Change, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { if (checkEndFieldValue()) { int endFilter = endFilterNumberField.getValue().intValue(); String tooltip = (String) startStore.getModels().get(endFilter).get(DimensionData.DIMENSION_KEY); // startStore.getModels().size() - endFilter - 1). endFilterNumberField.setToolTip(tooltip); endTimeLabel.setHtml(tooltip); } else { endTimeLabel.setHtml(""); endFilterNumberField.setToolTip(""); } } }); this.endFilterNumberField.setSize(50, 30); FormPanel panel = new FormPanel(); panel.setHeaderVisible(Boolean.FALSE); panel.setFrame(Boolean.TRUE); panel.setBorders(Boolean.FALSE); panel.setHeight(WIDGET_HEIGHT - 67); panel.add(this.dimensionRadioGroup); panel.setStyleAttribute("background-color", "white"); this.variableDimensionContainer.add(dimensionSizeLabel, new FormData("100%")); Portal portal = new Portal(3); portal.setBorders(false); portal.setColumnWidth(0, .20); portal.setColumnWidth(1, .60); portal.setColumnWidth(2, .20); Portlet portlet = new Portlet(); portlet.setLayout(new FitLayout()); portlet.setHeaderVisible(false); portlet.setSize(50, 30); portlet.add(this.startFilterNumberField); portal.add(portlet, 0); portlet = new Portlet(new CenterLayout()); portlet.setHeaderVisible(false); portlet.setSize(100, 30); this.rangeCheckBox = new CheckBox(); rangeCheckBox.setValue(true); rangeCheckBox.setBoxLabel("range"); portlet.add(rangeCheckBox); portlet.setBorders(false); portal.add(portlet, 1); portlet = new Portlet(); portlet.setHeaderVisible(false); portlet.setSize(50, 30); portlet.add(this.endFilterNumberField); portal.add(portlet, 2); this.variableDimensionContainer.add(portal, new FormData("99%")); // this.slider = new Slider() { @Override public void setValue(int value) { super.setValue(value); super.setMessage("" + (startStore.getModels().size() - value)); } }; slider.setIncrement(1); this.variableDimensionContainer.add(slider, new FormData("98%")); this.fixedDimensionContainer.add(this.startDimensionComboBox); this.fixedDimensionContainer.add(this.endDimensionComboBox); panel.add(this.fixedDimensionContainer, new FormData("100%")); panel.add(this.variableDimensionContainer, new FormData("100%")); super.add(panel); this.playSelectioListener = new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { // System.out.println("Play button status: "); if (!playButton.isPressed()) { playButton.setText(ButtonsConstants.INSTANCE.playText()); playButton.setIcon(AbstractImagePrototype.create(LayerResources.ICONS.playTime())); animationTimer.cancel(); } else { Number startValueNumber = startFilterNumberField.getValue(); if (startValueNumber == null) { GeoPlatformMessage.alertMessage( LayerModuleConstants.INSTANCE .LayerTimeFilterWidget_timeFilterWarningTitleText(), LayerModuleConstants.INSTANCE .LayerTimeFilterWidget_timeFilterWarningBodyText()); } else { slider.setValue(startStore.getModels().size() - startValueNumber.intValue() - 1); playButton.setIcon(AbstractImagePrototype.create(LayerResources.ICONS.pauseTime())); playButton.setText(ButtonsConstants.INSTANCE.pauseText()); playTimeFilter(); } } } }; playButton.addSelectionListener(playSelectioListener); playButton.setHeight(30); super.addButton(playButton); Button apply = new Button(ButtonsConstants.INSTANCE.applyText()); this.applyFilterSelectionListener = new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { GPLayerTreeModel layerSelected = (GPLayerTreeModel) treePanel.getSelectionModel().getSelectedItem(); IMementoSave mementoSave = MementoModuleInjector.MainInjector.getInstance().getMementoSave(); AbstractMementoOriginalProperties memento = mementoSave.copyOriginalProperties(layerSelected); String layerName; if (layerSelected.getAlias() != null && layerSelected.getAlias().indexOf(LAYER_TIME_DELIMITER) != -1) { layerName = layerSelected .getAlias() .substring(0, layerSelected.getAlias().indexOf(LAYER_TIME_DELIMITER)); } else { layerName = layerSelected.getLabel(); } if (fixedDimensionRadio.getValue()) { String timeFilter = (String) startDimensionComboBox.getValue().get(DimensionData.DIMENSION_KEY); if (endDimensionComboBox.getValue() != null) { timeFilter += "/" + (String) endDimensionComboBox.getValue().get(DimensionData.DIMENSION_KEY); } layerSelected.setTimeFilter(timeFilter); layerSelected.setVariableTimeFilter(null); layerSelected.setAlias( layerName + LAYER_TIME_DELIMITER + layerSelected.getTimeFilter() + "]"); WidgetPropertiesHandlerManager.fireEvent(labelEvent); } else { if ((rangeCheckBox.getValue() && !checkEndFieldValue()) || !checkStartFieldValue()) { GeoPlatformMessage.errorMessage( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_timeFilterErrorTitleText(), LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_timeFilterErrorBodyText()); return; } else { int fromFilter = slider.getValue(); String timeFilter = "" + (startStore.getModels().size() - fromFilter - 1); String variableTimeFilter = (String) startStore.getModels().get(fromFilter).get(DimensionData.DIMENSION_KEY); if (rangeCheckBox.getValue() && playButton.isPressed()) { fromFilter = startStore.getModels().size() - startFilterNumberField.getValue().intValue() - 1; timeFilter = "" + startFilterNumberField.getValue().intValue(); variableTimeFilter = (String) startStore.getModels().get(fromFilter).get(DimensionData.DIMENSION_KEY); // int toFilter = slider.getValue(); timeFilter += "/" + (startStore.getModels().size() - slider.getValue() - 1); variableTimeFilter += "/" + (String) startStore.getModels().get(toFilter).get(DimensionData.DIMENSION_KEY); } // This is usefull when press Apply button to show all the elements in range else if (rangeCheckBox.getValue() && endFilterNumberField.getValue() != null) { fromFilter = startStore.getModels().size() - startFilterNumberField.getValue().intValue() - 1; timeFilter = "" + startFilterNumberField.getValue().intValue(); variableTimeFilter = (String) startStore.getModels().get(fromFilter).get(DimensionData.DIMENSION_KEY); // int toFilter = startStore.getModels().size() - endFilterNumberField.getValue().intValue() - 1; timeFilter += "/" + endFilterNumberField.getValue().intValue(); variableTimeFilter += "/" + (String) startStore.getModels().get(toFilter).get(DimensionData.DIMENSION_KEY); } layerSelected.setTimeFilter(timeFilter); layerSelected.setVariableTimeFilter(variableTimeFilter); layerSelected.setAlias( layerName + LAYER_TIME_DELIMITER + layerSelected.getVariableTimeFilter() + "]"); WidgetPropertiesHandlerManager.fireEvent(labelEvent); slider.setMessage(variableTimeFilter); GeoPlatformMessage.infoMessage( LayerModuleConstants.INSTANCE .LayerTimeFilterWidget_timeFilterMessageTitleText(), LayerModuleMessages.INSTANCE.LayerTimeFilterWidget_layerStatusShowedMessage( timeFilter)); } } mementoSave.putOriginalPropertiesInCache(memento); timeFilterLayerMapEvent.setLayerBean(layerSelected); GPHandlerManager.fireEvent(timeFilterLayerMapEvent); treePanel.refresh(layerSelected); } }; apply.addSelectionListener(applyFilterSelectionListener); super.addButton(apply); Button close = new Button( ButtonsConstants.INSTANCE.closeText(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { startFilterNumberField.clear(); startTimeLabel.setHtml(""); endTimeLabel.setHtml(""); endFilterNumberField.clear(); hide(); } }); super.addButton(close); } private void playTimeFilter() { animationTimer = new Timer() { @Override public void run() { // int startValue = getFielValueDecrement(startFilterNumberField); int startValue = slider.getValue(); if (startValue != startStore.getModels().size() - 1 && (endFilterNumberField.getValue() != null && (startStore.getModels().size() - startValue - 1) != (endFilterNumberField.getValue().intValue() - 1))) { slider.setValue(++startValue); // This call produce the update in map applyFilterSelectionListener.componentSelected(null); } else { stopPlayer(); } } }; animationTimer.scheduleRepeating(5000); } private void stopPlayer() { if (playButton.isPressed()) { playButton.toggle(Boolean.FALSE); playSelectioListener.componentSelected(null); // This call produce the update in map applyFilterSelectionListener.componentSelected(null); } } private boolean checkStartFieldValue() { boolean condition = false; // System.out.println("Start store size: " + startStore.getModels().size()); if (startFilterNumberField.getValue() != null) { int fromFilter = startFilterNumberField.getValue().intValue(); // System.out.println("From filter: " + fromFilter); if (fromFilter >= 0 && fromFilter <= startStore.getModels().size() - 1) { condition = true; } } return condition; } private boolean checkEndFieldValue() { boolean condition = false; if (this.checkStartFieldValue() && endFilterNumberField.getValue() != null) { int fromFilter = startFilterNumberField.getValue().intValue(); int toFilter = endFilterNumberField.getValue().intValue(); // System.out.println("To filter: " + toFilter); if (toFilter < fromFilter && toFilter >= 0) { condition = true; } } return condition; } private void loadDataToDisplay() { final GetLayerDimensionRequest getLayerDimensionRequest = GWT.<GetLayerDimensionRequest>create(GetLayerDimensionRequest.class); final GPLayerTreeModel layerSelected = (GPLayerTreeModel) treePanel.getSelectionModel().getSelectedItem(); getLayerDimensionRequest.setLayerName(layerSelected.getName()); ClientCommandDispatcher.getInstance() .execute( new GPClientCommand<GetLayerDimensionResponse>() { private static final long serialVersionUID = 4372276287420606744L; { super.setCommandRequest(getLayerDimensionRequest); } @Override public void onCommandSuccess(GetLayerDimensionResponse response) { List<String> dimensionList = Lists.<String>newArrayList(response.getResult().split(",")); dimensionSizeLabel.setHtml( LayerModuleMessages.INSTANCE.LayerTimeFilterWidget_dimensionSizeHTMLMessage( dimensionList.size())); dimensionSizeLabel.setStyleAttribute("font-size", "1.3em"); dimensionSizeLabel.setStyleAttribute("text-align", "right"); startStore.removeAll(); endStore.removeAll(); for (String dimension : GPSharedUtils.safeList(dimensionList)) { startStore.add(new DimensionData(dimension)); } if (!dimensionList.isEmpty()) { slider.setMaxValue(dimensionList.size()); slider.setMinValue(0); endFilterNumberField.setValue(0); if (layerSelected.getTimeFilter() != null) { String[] timeFilterSplitted = layerSelected.getTimeFilter().split("/"); int startDimensionPosition = Integer.parseInt(timeFilterSplitted[0]); slider.setValue(startStore.getModels().size() - startDimensionPosition - 1); startFilterNumberField.setValue(startDimensionPosition); if (timeFilterSplitted.length > 1) { int endDimensionPosition = Integer.parseInt(timeFilterSplitted[1]); endFilterNumberField.setValue(endDimensionPosition); } } else { startFilterNumberField.setValue(dimensionList.size() - 1); } } } @Override public void onCommandFailure(Throwable exception) { if (exception.getCause() instanceof GPSessionTimeout) { GPHandlerManager.fireEvent(new GPLoginEvent(null)); } else { GeoPlatformMessage.errorMessage( LayerModuleConstants.INSTANCE .LayerTimeFilterWidget_timeFilterErrorTitleText(), WindowsConstants.INSTANCE.errorMakingConnectionBodyText()); LayoutManager.getInstance() .getStatusMap() .setStatus( LayerModuleConstants.INSTANCE .LayerTimeFilterWidget_statusTimeFilterErrorLoadingText(), SearchStatus.EnumSearchStatus.STATUS_NO_SEARCH.toString()); System.out.println( "Error Loading Time Filter: " + exception.toString() + " data: " + exception.getMessage()); } } }); } @Override public void show() { super.show(); this.loadDataToDisplay(); GPLayerTreeModel layerElement = (GPLayerTreeModel) treePanel.getSelectionModel().getSelectedItem(); String timeFilter = layerElement.getTimeFilter(); String variableTimeFilter = layerElement.getVariableTimeFilter(); if (variableTimeFilter != null) { try { String[] variableTimeFilterSplitted = timeFilter.split("/"); int integerTimeFilter = Integer.parseInt(variableTimeFilterSplitted[0]); this.startFilterNumberField.setValue(integerTimeFilter); this.dimensionRadioGroup.setValue(this.variableDimensionRadio); if (variableTimeFilterSplitted.length > 1) { integerTimeFilter = Integer.parseInt(variableTimeFilterSplitted[1]); this.endFilterNumberField.setValue(integerTimeFilter); } } catch (NumberFormatException nfe) { } } else if (timeFilter != null) { String[] timeFilterSplitted = timeFilter.split("/"); this.startDimensionComboBox.setValue(new DimensionData(timeFilterSplitted[0])); if (timeFilterSplitted.length > 1) { this.endDimensionComboBox.enable(); this.endDimensionComboBox.setValue(new DimensionData(timeFilterSplitted[1])); } this.dimensionRadioGroup.setValue(this.fixedDimensionRadio); } } @Override public void initSize() { super.setSize(WIDGET_WIDTH, WIDGET_HEIGHT); } @Override public void setWindowProperties() { super.setHeadingHtml( LayerModuleConstants.INSTANCE.LayerTimeFilterWidget_timeFilderHeadingText()); super.setLayout(new FormLayout()); super.setModal(Boolean.TRUE); } }
@Override public AbstractImagePrototype getIcon() { return LayerResources.ICONS.point(); }
public static Menu getLayerContextMenu() { if (layerContextMenu == null) { layerContextMenu = new Menu(); // add zoom to max extent MenuItem zoomToMaxExtend = new MenuItem(); zoomToMaxExtend.setText("Zoom to layer extend"); zoomToMaxExtend.setIcon(LayerResources.ICONS.zoomToMaxExtend()); zoomToMaxExtend.addSelectionListener(new ZoomToLayerExtentAction(treePanel)); layerContextMenu.add(zoomToMaxExtend); MenuItem exportMenuItem = new MenuItem(); exportMenuItem.setText("Export"); exportMenuItem.setSubMenu(new GPExportMenu(treePanel)); layerContextMenu.add(exportMenuItem); MenuItem cqlFilterMenuItem = new MenuItem(); cqlFilterMenuItem.setText("CQL Filter"); cqlFilterMenuItem.setSubMenu(new GPCQLFilterMenu(treePanel)); layerContextMenu.add(cqlFilterMenuItem); MenuItem timeFilterMenuItem = new MenuItem(); timeFilterMenuItem.setText("TIME Filter"); timeFilterMenuItem.setSubMenu(new GPTimeFilterMenu(treePanel)); layerContextMenu.add(timeFilterMenuItem); MenuItem layerProperties = new MenuItem(); layerProperties.setText("Layer Properties"); layerProperties.setIcon(LayerResources.ICONS.layerProperties()); layerProperties.addSelectionListener(new ShowLayerPropertiesAction(treePanel)); MenuItem copyMenuItem = new MenuItem("Copy Layer"); copyMenuItem.setIcon(LayerResources.ICONS.copy()); copyMenuItem.addSelectionListener(new CopyLayerAction(treePanel, pasteAction, pasteMenuItem)); layerContextMenu.add(copyMenuItem); MenuItem createViewportLayerMenu = new MenuItem(); createViewportLayerMenu.setText("Create Viewport"); createViewportLayerMenu.setIcon(BasicWidgetResources.ICONS.viewport()); createViewportLayerMenu.addSelectionListener(new CreateLayerViewportAction(treePanel)); layerContextMenu.add(createViewportLayerMenu); // TODO ADD EditWFS dynamically EditWFSAction editFeatureAction = new EditWFSAction(treePanel); MenuItem editFeature = new MenuItem(); editFeature.setText(editFeatureAction.getTitle()); editFeature.setIcon(editFeatureAction.getImage()); editFeature.addSelectionListener(editFeatureAction); layerContextMenu.add(editFeature); refreshTimeComboBox = new ComboBox() { @Override protected void onSelect(ModelData model, int index) { super.onSelect(model, index); refreshTimeComboBox.clearSelections(); layerContextMenu.hide(); } }; refreshTimeComboBox.setEmptyText("Refresh Time"); ListStore<LayerRefreshTimeValue> store = new ListStore<LayerRefreshTimeValue>(); store.add(LayerRefreshTimeValue.getLayerRefreshTimeList()); refreshTimeComboBox.setStore(store); refreshTimeComboBox.setEditable(Boolean.FALSE); refreshTimeComboBox.setForceSelection(Boolean.TRUE); refreshTimeComboBox.setTypeAhead(Boolean.FALSE); refreshTimeComboBox.setUseQueryCache(Boolean.FALSE); refreshTimeComboBox.setDisplayField(LayerRefreshTimeValue.REFRESH_TIME_KEY); // refreshMenuItem.setIcon(LayerResources.ICONS.layerRefresh()); refreshTimeComboBox.addSelectionChangedListener(new RefreshLayerAction(treePanel)); layerContextMenu.add(refreshTimeComboBox); layerContextMenu.add(layerProperties); } return layerContextMenu; }