Revision: 6590
http://sourceforge.net/p/jump-pilot/code/6590
Author: edso
Date: 2020-10-09 12:43:10 +0000 (Fri, 09 Oct 2020)
Log Message:
-----------
deprecated ToolboxPlugIn
introduce ToolboxPlugInV2, mainly a cleaner version of the above with easier
error handling
Modified Paths:
--------------
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugIn.java
Added Paths:
-----------
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugInV2.java
Modified:
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugIn.java
===================================================================
---
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugIn.java
2020-10-08 15:08:04 UTC (rev 6589)
+++
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugIn.java
2020-10-09 12:43:10 UTC (rev 6590)
@@ -47,6 +47,11 @@
import com.vividsolutions.jump.workbench.plugin.PlugInContext;
import com.vividsolutions.jump.workbench.ui.plugin.FeatureInstaller;
+import jdk.internal.misc.InnocuousThread;
+
+/**
+ * @deprecated future implementations should use {@link ToolboxPlugInV2}
instead
+ */
public abstract class ToolboxPlugIn extends AbstractPlugIn implements
CheckBoxed {
// just one toolbox instance for plugins switching the same toolbox
private static HashMap toolboxMap = new HashMap<String,ToolboxDialog>();
Added:
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugInV2.java
===================================================================
---
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugInV2.java
(rev 0)
+++
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugInV2.java
2020-10-09 12:43:10 UTC (rev 6590)
@@ -0,0 +1,98 @@
+/*
+ * The Unified Mapping Platform (JUMP) is an extensible, interactive GUI
+ * for visualizing and manipulating spatial features with geometry and
attributes.
+ *
+ * Copyright (C) 2003 Vivid Solutions
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * For more information, contact:
+ *
+ * Vivid Solutions
+ * Suite #1A
+ * 2328 Government Street
+ * Victoria BC V8T 5G5
+ * Canada
+ *
+ * (250)385-6040
+ * www.vividsolutions.com
+ */
+
+package com.vividsolutions.jump.workbench.ui.toolbox;
+
+import java.util.HashMap;
+
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JComponent;
+
+import com.vividsolutions.jump.workbench.plugin.AbstractPlugIn;
+import com.vividsolutions.jump.workbench.plugin.CheckBoxed;
+import com.vividsolutions.jump.workbench.plugin.EnableCheck;
+import com.vividsolutions.jump.workbench.plugin.PlugInContext;
+
+/**
+ * pretty much {@link ToolboxPlugIn} but cleaned up plus propagating errors
+ * from initializeToolbox() -> getToolbox() -> execute() making implementations
+ * easier and more failsafe
+ */
+public abstract class ToolboxPlugInV2 extends AbstractPlugIn implements
CheckBoxed {
+ // just one toolbox instance for plugins switching the same toolbox
+ private static HashMap toolboxMap = new HashMap<String,ToolboxDialog>();
+
+ /**
+ * @return the toolbox for this plug-in class.
+ */
+ public ToolboxDialog getToolbox() throws Exception{
+ String name = getName();
+ ToolboxDialog toolbox = (ToolboxDialog) toolboxMap.get(name);
+ if (toolbox == null) {
+ // allow implementation to return null or throw errors
+ toolbox=initializeToolbox();
+ toolbox.finishAddingComponents();
+ toolboxMap.put(name, toolbox);
+ }
+ return toolbox;
+ }
+
+ protected abstract ToolboxDialog initializeToolbox() throws Exception;
+
+ /**
+ * Toolbox subclasses can override this method to implement their own
+ * behaviour when the plug-in is called. Remember to call super.execute to
+ * make the toolbox visible.
+ */
+ public boolean execute(PlugInContext context) throws Exception {
+ reportNothingToUndoYet(context);
+ ToolboxDialog tb = getToolbox();
+ tb.setVisible(!tb.isVisible());
+ return true;
+ }
+
+ public EnableCheck getEnableCheck() {
+ return new EnableCheck() {
+ // switch checkbox menu item on/off, depending on current visibility
+ public String check(JComponent component) {
+ //// do not initialize toolbox here, it delays menu opening!
+ // JDialog tb = getToolbox();
+ //// but assume not initialized/null equals not activated :)
+ String name = getName();
+ ToolboxDialog tb = (ToolboxDialog) toolboxMap.get(name);
+ if (component instanceof JCheckBoxMenuItem)
+ ((JCheckBoxMenuItem) component).setSelected(tb!=null &&
tb.isVisible());
+ return null;
+ }
+ };
+ }
+}
Property changes on:
core/trunk/src/com/vividsolutions/jump/workbench/ui/toolbox/ToolboxPlugInV2.java
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel