Revision: 6357
http://sourceforge.net/p/jump-pilot/code/6357
Author: ma15569
Date: 2020-07-16 11:17:33 +0000 (Thu, 16 Jul 2020)
Log Message:
-----------
Added capability to open Python console and tools from CAD toolbar:
added Align and Distribute tools
Modified Paths:
--------------
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/EditToolboxCADPlugIn.java
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/utils/WorkbenchUtils.java
Modified:
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/EditToolboxCADPlugIn.java
===================================================================
---
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/EditToolboxCADPlugIn.java
2020-07-16 11:11:52 UTC (rev 6356)
+++
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/EditToolboxCADPlugIn.java
2020-07-16 11:17:33 UTC (rev 6357)
@@ -20,7 +20,6 @@
* @since OpenJUMP 1.10
*/
import java.awt.BorderLayout;
-import java.awt.GridBagConstraints;
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
@@ -47,6 +46,7 @@
import org.openjump.advancedtools.plugins.RegularPolygonPlugIn;
import org.openjump.advancedtools.plugins.ShortenLinePlugIn;
import org.openjump.advancedtools.plugins.SimpleLinePlugIn;
+import org.openjump.advancedtools.tools.AddAreaTool;
import org.openjump.advancedtools.tools.CopyDraggingTool;
import org.openjump.advancedtools.tools.CuadraticBezierCurveTool;
import org.openjump.advancedtools.tools.DrawConstrainedParallelogramTool;
@@ -55,10 +55,13 @@
import org.openjump.advancedtools.tools.ParalelAuxiliarylLineTool;
import org.openjump.advancedtools.tools.ParalelLineTool;
import org.openjump.advancedtools.tools.PerpendicularLineTool;
+import org.openjump.advancedtools.tools.RemoveAreaTool;
import org.openjump.advancedtools.tools.RemoveSectionInLineTool;
import org.openjump.advancedtools.tools.SelectEditingFeaturesTool;
import org.openjump.advancedtools.tools.cogo.CommandLineStringFrame;
import org.openjump.advancedtools.tools.cogo.DrawGeometryCommandsTool;
+import org.openjump.advancedtools.utils.WorkbenchUtils;
+import org.openjump.core.ui.swing.DetachableInternalFrame;
import com.vividsolutions.jump.workbench.JUMPWorkbench;
import com.vividsolutions.jump.workbench.WorkbenchContext;
@@ -76,6 +79,8 @@
import com.vividsolutions.jump.workbench.ui.toolbox.ToolboxDialog;
import com.vividsolutions.jump.workbench.ui.toolbox.ToolboxPlugIn;
+
+
/**
* @author Giuseppe Aruta
* @since OpenJUMP 1.10
@@ -83,277 +88,301 @@
public class EditToolboxCADPlugIn extends ToolboxPlugIn {
- public static final String CAD = I18NPlug
- .getI18N("org.openjump.core.ui.CAD");
- public static final String CAD_OPTIONS_PANE_NAME = I18NPlug
- .getI18N("org.openjump.core.ui.config.CADToolsOptionsPanel");
+ public static final String CAD = I18NPlug
+ .getI18N("org.openjump.core.ui.CAD");
+ public static final String CAD_OPTIONS_PANE_NAME = I18NPlug
+
.getI18N("org.openjump.core.ui.config.CADToolsOptionsPanel");
- PlugInContext context;
+ PlugInContext context;
- public static ImageIcon ICON = org.openjump.advancedtools.icon.IconLoader
- .icon("cadTools.png");
+ public static ImageIcon ICON =
org.openjump.advancedtools.icon.IconLoader
+ .icon("cadTools.png");
- @Override
- public void initialize(PlugInContext context) throws Exception {
- WorkbenchContext workbenchContext = context.getWorkbenchContext();
- new FeatureInstaller(workbenchContext);
+ @Override
+ public void initialize(PlugInContext context) throws Exception {
+ WorkbenchContext workbenchContext =
context.getWorkbenchContext();
+ new FeatureInstaller(workbenchContext);
- context.getWorkbenchFrame().getToolBar().addSpacer();
- context.getWorkbenchFrame()
- .getToolBar()
- .addPlugIn(ICON, this, createEnableCheck(workbenchContext),
- context.getWorkbenchContext());
- context.getFeatureInstaller().addMainMenuPlugin(this,
- new String[] { MenuNames.PLUGINS }, CAD, false, ICON,
- createEnableCheck(workbenchContext));
- OptionsDialog.instance(context.getWorkbenchContext().getWorkbench())
- .addTab(CAD_OPTIONS_PANE_NAME, GUIUtil.toSmallIcon(ICON),
- new CADToolsOptionsPanel());
+ context.getWorkbenchFrame().getToolBar().addSpacer();
+ context.getWorkbenchFrame()
+ .getToolBar()
+ .addPlugIn(ICON, this, createEnableCheck(workbenchContext),
+ context.getWorkbenchContext());
+ context.getFeatureInstaller().addMainMenuPlugin(this,
+ new String[] { MenuNames.PLUGINS }, CAD, false,
ICON,
+ createEnableCheck(workbenchContext));
+
OptionsDialog.instance(context.getWorkbenchContext().getWorkbench())
+ .addTab(CAD_OPTIONS_PANE_NAME, GUIUtil.toSmallIcon(ICON),
+ new CADToolsOptionsPanel());
- }
+ }
- private MultiEnableCheck createEnableCheck(
- final WorkbenchContext workbenchContext) {
- EnableCheckFactory checkFactory = new EnableCheckFactory(
- workbenchContext);
+ private MultiEnableCheck createEnableCheck(
+ final WorkbenchContext workbenchContext) {
+ EnableCheckFactory checkFactory = new EnableCheckFactory(
+ workbenchContext);
- MultiEnableCheck mec = new MultiEnableCheck();
-
mec.add(checkFactory.createWindowWithLayerViewPanelMustBeActiveCheck());
- mec.add(new EnableCheck() {
- @Override
- public String check(JComponent component) {
- component.setToolTipText(getName());
- return null;
- }
- });
+ MultiEnableCheck mec = new MultiEnableCheck();
+
mec.add(checkFactory.createWindowWithLayerViewPanelMustBeActiveCheck());
+ mec.add(new EnableCheck() {
+ @Override
+ public String check(JComponent component) {
+ component.setToolTipText(getName());
+ return null;
+ }
+ });
- return mec;
- }
+ return mec;
+ }
- @Override
- public String getName() {
- return CAD;
- }
+ @Override
+ public String getName() {
+ return CAD;
+ }
+ DetachableInternalFrame dFrame = new DetachableInternalFrame();
+ @Override
+ protected void initializeToolbox(final ToolboxDialog toolbox) {
+ WorkbenchUtils.loadPython(toolbox);
+ toolbox.setTitle(CAD);
+ EnableCheckFactory checkFactory = new EnableCheckFactory(
+ toolbox.getContext());
- @Override
- protected void initializeToolbox(final ToolboxDialog toolbox) {
- toolbox.setTitle(CAD);
- EnableCheckFactory checkFactory = new EnableCheckFactory(
- toolbox.getContext());
+ /**
+ * Selecting tools/plugins
+ */
+ // Select feature in only one selected layer
+ SelectEditingFeaturesTool select = new
SelectEditingFeaturesTool();
+ toolbox.add(select);
+ // Unselect features
+ ClearLayerSelectionPlugIn clearSelectionPlugIn2 = new
ClearLayerSelectionPlugIn();
+ toolbox.addPlugIn(clearSelectionPlugIn2, null,
+ ClearLayerSelectionPlugIn.ICON);
+ /**
+ * Drawing tools/plugIns
+ *
+ * Create new geometries giving defined parameters
+ */
+ // Draw simple line with commands
+ SimpleLinePlugIn sl = new SimpleLinePlugIn();
+ toolbox.addPlugIn(sl, null, sl.getIcon());
- /**
- * Selecting tools/plugins
- */
- // Select feature in only one selected layer
- SelectEditingFeaturesTool select = new SelectEditingFeaturesTool();
- toolbox.add(select);
- // Unselect features
- ClearLayerSelectionPlugIn clearSelectionPlugIn2 = new
ClearLayerSelectionPlugIn();
- toolbox.addPlugIn(clearSelectionPlugIn2, null,
- ClearLayerSelectionPlugIn.ICON);
- /**
- * Drawing tools/plugIns
- *
- * Create new geometries giving defined parameters
- */
- // Draw simple line with commands
- SimpleLinePlugIn sl = new SimpleLinePlugIn();
- toolbox.addPlugIn(sl, null, sl.getIcon());
+ // Draw Bezier curve tool
+
toolbox.add(CuadraticBezierCurveTool.create(toolbox.getContext()));
- // Draw Bezier curve tool
- toolbox.add(CuadraticBezierCurveTool.create(toolbox.getContext()));
+ // Draw arc plugin
+ ArcPlugIn arc = new ArcPlugIn();
+ toolbox.addPlugIn(arc, null, arc.getIcon());
- // Draw arc plugin
- ArcPlugIn arc = new ArcPlugIn();
- toolbox.addPlugIn(arc, null, arc.getIcon());
+ // Draw Constrained parallelogramme
+ toolbox.add(DrawConstrainedParallelogramTool.create(toolbox
+ .getContext()));
- // Draw Constrained parallelogramme
- toolbox.add(DrawConstrainedParallelogramTool.create(toolbox
- .getContext()));
+ // Draw regular polygon
+ RegularPolygonPlugIn regular = new RegularPolygonPlugIn();
+ toolbox.addPlugIn(regular, null, regular.getIcon());
+ ;
+ // Draw circle plugin
+ CirclePlugIn circle = new CirclePlugIn();
+ toolbox.addPlugIn(circle, null, circle.getIcon());
+ toolbox.addToolBar();
+ // Simple draw ellipse by dragging
+ toolbox.add(EllipseByDraggingTool.create(toolbox.getContext()));
- // Draw regular polygon
- RegularPolygonPlugIn regular = new RegularPolygonPlugIn();
- toolbox.addPlugIn(regular, null, regular.getIcon());
- ;
- // Draw circle plugin
- CirclePlugIn circle = new CirclePlugIn();
- toolbox.addPlugIn(circle, null, circle.getIcon());
- toolbox.addToolBar();
- // Simple draw ellipse by dragging
- toolbox.add(EllipseByDraggingTool.create(toolbox.getContext()));
+ // Draw with commands
+ DelegatingTool delLineCommandTool = (DelegatingTool)
DrawGeometryCommandsTool
+ .create(toolbox.getContext());
+ WorkbenchToolBar.ToolConfig toolConfig = toolbox
+ .add(delLineCommandTool);
+ final CommandLineStringFrame frame = new CommandLineStringFrame(
+ (DrawGeometryCommandsTool)
delLineCommandTool.getDelegate());
+ final JToggleButton cogoCommandButton = toolConfig.getButton();
+ cogoCommandButton.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ super.mouseClicked(e);
+
frame.setVisible(cogoCommandButton.isSelected());
+ }
+ });
+ cogoCommandButton.addItemListener(new ItemListener() {
+ @Override
+ public void itemStateChanged(ItemEvent e) {
+
frame.setVisible(cogoCommandButton.isSelected());
+ }
+ });
+ // cogoCommandButton.addChangeListener(new ChangeListener() {
+ // @Override
+ // public void stateChanged(ChangeEvent e) {
+ // frame.setVisible(cogoCommandButton.isSelected());
+ // }
+ // });
- // Draw with commands
- DelegatingTool delLineCommandTool = (DelegatingTool)
DrawGeometryCommandsTool
- .create(toolbox.getContext());
- WorkbenchToolBar.ToolConfig toolConfig = toolbox
- .add(delLineCommandTool);
- final CommandLineStringFrame frame = new CommandLineStringFrame(
- (DrawGeometryCommandsTool) delLineCommandTool.getDelegate());
- final JToggleButton cogoCommandButton = toolConfig.getButton();
- cogoCommandButton.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseClicked(MouseEvent e) {
- super.mouseClicked(e);
- frame.setVisible(cogoCommandButton.isSelected());
- }
- });
- cogoCommandButton.addItemListener(new ItemListener() {
- @Override
- public void itemStateChanged(ItemEvent e) {
- frame.setVisible(cogoCommandButton.isSelected());
- }
- });
- // cogoCommandButton.addChangeListener(new ChangeListener() {
- // @Override
- // public void stateChanged(ChangeEvent e) {
- // frame.setVisible(cogoCommandButton.isSelected());
- // }
- // });
+ /**
+ * Generate tools/plugins
+ *
+ * Generate new geometries from selected one. Selected
geometries are
+ * not deleted
+ */
+ // Draw parallel line to a selected geometry
+ ParalelLineTool paralel = new ParalelLineTool(checkFactory);
+ toolbox.add(paralel);
- /**
- * Generate tools/plugins
- *
- * Generate new geometries from selected one. Selected geometries are
- * not deleted
- */
- // Draw parallel line to a selected geometry
- ParalelLineTool paralel = new ParalelLineTool(checkFactory);
- toolbox.add(paralel);
+ // Draw a parallel auxiliary line to a selected geometry
+ ParalelAuxiliarylLineTool auxiliaryParalel = new
ParalelAuxiliarylLineTool(
+ checkFactory);
+ toolbox.add(auxiliaryParalel);
- // Draw a parallel auxiliary line to a selected geometry
- ParalelAuxiliarylLineTool auxiliaryParalel = new
ParalelAuxiliarylLineTool(
- checkFactory);
- toolbox.add(auxiliaryParalel);
+ // Draw a perpendicular line to a selected geometry
+ PerpendicularLineTool perpendicular = new PerpendicularLineTool(
+ checkFactory);
+ toolbox.add(perpendicular);
- // Draw a perpendicular line to a selected geometry
- PerpendicularLineTool perpendicular = new PerpendicularLineTool(
- checkFactory);
- toolbox.add(perpendicular);
+ // Clone selected geometries
+ CopyDraggingTool copy = new CopyDraggingTool(checkFactory);
+ toolbox.add(copy);
- // Clone selected geometries
- CopyDraggingTool copy = new CopyDraggingTool(checkFactory);
- toolbox.add(copy);
+ // Axial symmetry of selected geometries
+ MirrorPlugin mirror = new MirrorPlugin();
+ toolbox.addPlugIn(mirror, null, mirror.getIcon());
- // Axial symmetry of selected geometries
- MirrorPlugin mirror = new MirrorPlugin();
- toolbox.addPlugIn(mirror, null, mirror.getIcon());
+ // Extend a lineString
+ ExtendLinePlugIn extendLinePlugIn = new ExtendLinePlugIn();
+ toolbox.addPlugIn(extendLinePlugIn, null,
extendLinePlugIn.getIcon());
+ toolbox.addToolBar();
+ // Shorten a lineString
+ ShortenLinePlugIn shortenLinePlugIn = new ShortenLinePlugIn();
+ toolbox.addPlugIn(shortenLinePlugIn, null,
shortenLinePlugIn.getIcon());
- // Extend a lineString
- ExtendLinePlugIn extendLinePlugIn = new ExtendLinePlugIn();
- toolbox.addPlugIn(extendLinePlugIn, null, extendLinePlugIn.getIcon());
- toolbox.addToolBar();
- // Shorten a lineString
- ShortenLinePlugIn shortenLinePlugIn = new ShortenLinePlugIn();
- toolbox.addPlugIn(shortenLinePlugIn, null,
shortenLinePlugIn.getIcon());
+ /**
+ * Modify tools/plugins
+ *
+ * Modify selected geometries.
+ */
- /**
- * Modify tools/plugins
- *
- * Modify selected geometries.
- */
+ // Extend two convergent lineStrings and cut in the point they
touch
+ toolbox.add(ExtendLinesAndCutWhereTheyTouchTool.create(toolbox
+ .getContext()));
- // Extend two convergent lineStrings and cut in the point they touch
- toolbox.add(ExtendLinesAndCutWhereTheyTouchTool.create(toolbox
- .getContext()));
+ // Put vertex on crossing point of two lineStrings
+ PutVertexInCrossingLinesPlugIn putVertex = new
PutVertexInCrossingLinesPlugIn();
+ toolbox.addPlugIn(putVertex, null, putVertex.getIcon());
- // Put vertex on crossing point of two lineStrings
- PutVertexInCrossingLinesPlugIn putVertex = new
PutVertexInCrossingLinesPlugIn();
- toolbox.addPlugIn(putVertex, null, putVertex.getIcon());
+ // Remove a section of a selected lineString
+ toolbox.add(QuasimodeTool
+ .createWithDefaults(new
RemoveSectionInLineTool(checkFactory)));
- // Remove a section of a selected lineString
- toolbox.add(QuasimodeTool
- .createWithDefaults(new
RemoveSectionInLineTool(checkFactory)));
- // toolbox.addToolBar();
- // toolbox.add(QuasimodeTool.createWithDefaults(new
- // DrawOneVectorTool()));
+ AddAreaTool addAreaTool = new AddAreaTool();
+ toolbox.add(addAreaTool);
- /*
- * The following working tools/plugins are deactivated as either always
- * they have a correspondence in OpenJUMP or they are used for testing
- * reasons
- */
+ RemoveAreaTool removeAreaTool = new RemoveAreaTool();
+ toolbox.add(removeAreaTool);
- // Rotate features by dragging
- // toolbox.add(GeneralUtils.addStandardQuasimodes(new
- // RotateTool(checkFactory)));
- // Rotate features using a dilaog
- // toolbox.add(GeneralUtils.addStandardQuasimodes(new
- // RotateDialogTool(checkFactory)));
- // ForceQuitPlugIn quit = new ForceQuitPlugIn();
- // toolbox.addPlugIn(quit, null, quit.getIcon());
+ // toolbox.addToolBar();
+ // toolbox.add(QuasimodeTool.createWithDefaults(new
+ // DrawOneVectorTool()));
- /**
- * Add lower panel
- */
- // JPanel pan = new JPanel();
- // toolbox.getCenterPanel().add(pan, GridBagConstraints.RELATIVE);
- toolbox.getCenterPanel().add(FullPanel(toolbox),
- GridBagConstraints.RELATIVE);
+ /*
+ * The following working tools/plugins are deactivated as
either always
+ * they have a correspondence in OpenJUMP or they are used for
testing
+ * reasons
+ */
- toolbox.finishAddingComponents();
- toolbox.setIconImage(org.openjump.advancedtools.icon.IconLoader
- .image("cadTools.png"));
- toolbox.setResizable(false);
- toolbox.setInitialLocation(new GUIUtil.Location(20, true, 20, true));
- toolbox.validate();
+ // Rotate features by dragging
+ // toolbox.add(GeneralUtils.addStandardQuasimodes(new
+ // RotateTool(checkFactory)));
+ // Rotate features using a dilaog
+ // toolbox.add(GeneralUtils.addStandardQuasimodes(new
+ // RotateDialogTool(checkFactory)));
- }
+ // ForceQuitPlugIn quit = new ForceQuitPlugIn();
+ // toolbox.addPlugIn(quit, null, quit.getIcon());
- private JPanel optionPanel(final ToolboxDialog toolbox) {
+ /**
+ * Add lower panel
+ */
+ // JPanel pan = new JPanel();
+ // toolbox.getCenterPanel().add(pan,
GridBagConstraints.RELATIVE);
+ toolbox.getCenterPanel().add(FullPanel(toolbox),
+ BorderLayout.NORTH);
+ /* JMenuItem console = new JMenuItem("Open Python
console");
- JPanel optionPanel = new JPanel();
- optionPanel.setLayout(new BorderLayout());
- JPanel option = new JPanel();
- JButton optionsButton = new JButton(CAD_OPTIONS_PANE_NAME + "...");
+ toolbox.getJMenuBar().getMenu(0).add(console);
+ console.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ dFrame.add(WorkbenchUtils.console);
+ WorkbenchFrame wFrame =
JUMPWorkbench.getInstance().getFrame();
+ dFrame.setPreferredSize(new Dimension(450,
120));
+ wFrame
+ .addInternalFrame(dFrame);
- optionsButton.addActionListener(new java.awt.event.ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- OptionsDialog optionsDialog = OptionsDialog
- .instance(JUMPWorkbench.getInstance());
- JTabbedPane tabbedPane = optionsDialog.getTabbedPane();
- for (int i = 0; i < tabbedPane.getTabCount(); i++) {
- if (tabbedPane.getComponentAt(i) instanceof
CADToolsOptionsPanel) {
- tabbedPane.setSelectedIndex(i);
- break;
- }
- }
- GUIUtil.centreOnWindow(optionsDialog);
- optionsDialog.setVisible(true);
- }
- });
- optionsButton
- .setIcon(com.vividsolutions.jump.workbench.ui.images.IconLoader
- .icon("fugue/wrench-screwdriver.png"));
- option.add(optionsButton);
- optionPanel.add(option, BorderLayout.SOUTH);
- return optionPanel;
- }
+ }
+ });*/
- ;
+ toolbox.finishAddingComponents();
+ toolbox.setIconImage(org.openjump.advancedtools.icon.IconLoader
+ .image("cadTools.png"));
+ toolbox.setResizable(false);
+ toolbox.setInitialLocation(new GUIUtil.Location(20, true, 20,
true));
+ toolbox.validate();
- JPanel fullPanel = new JPanel();
- TextPanel txtpan = new TextPanel();
- BlockPanel pan = new BlockPanel();
+ }
- /*
- * Blocks, Annotation and Option panels resize together
- */
- private JPanel FullPanel(final ToolboxDialog toolbox) {
+ private JPanel optionPanel(final ToolboxDialog toolbox) {
- fullPanel.setLayout(new BorderLayout());
+ JPanel optionPanel = new JPanel();
+ optionPanel.setLayout(new BorderLayout());
+ JPanel option = new JPanel();
+ JButton optionsButton = new JButton(CAD_OPTIONS_PANE_NAME +
"...");
- fullPanel.add(
- txtpan.panel_text(toolbox.getContext().createPlugInContext()),
- BorderLayout.CENTER);
- fullPanel.add(
- pan.panel_blocks(toolbox.getContext().createPlugInContext()),
- BorderLayout.NORTH);
- fullPanel.add(optionPanel(toolbox), BorderLayout.SOUTH);
+ optionsButton.addActionListener(new
java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ OptionsDialog optionsDialog = OptionsDialog
+
.instance(JUMPWorkbench.getInstance());
+ JTabbedPane tabbedPane =
optionsDialog.getTabbedPane();
+ for (int i = 0; i < tabbedPane.getTabCount();
i++) {
+ if (tabbedPane.getComponentAt(i)
instanceof CADToolsOptionsPanel) {
+ tabbedPane.setSelectedIndex(i);
+ break;
+ }
+ }
+ GUIUtil.centreOnWindow(optionsDialog);
+ optionsDialog.setVisible(true);
+ }
+ });
+ optionsButton
+ .setIcon(com.vividsolutions.jump.workbench.ui.images.IconLoader
+ .icon("fugue/wrench-screwdriver.png"));
+ option.add(optionsButton);
+ optionPanel.add(option, BorderLayout.SOUTH);
- return fullPanel;
- }
+ return optionPanel;
+ }
+ ;
+
+ JPanel fullPanel = new JPanel();
+ TextPanel txtpan = new TextPanel();
+ BlockPanel pan = new BlockPanel();
+
+ /*
+ * Blocks, Annotation and Option panels resize together
+ */
+ private JPanel FullPanel(final ToolboxDialog toolbox) {
+
+ fullPanel.setLayout(new BorderLayout());
+
+ fullPanel.add(
+
txtpan.panel_text(toolbox.getContext().createPlugInContext()),
+ BorderLayout.CENTER);
+ fullPanel.add(
+
pan.panel_blocks(toolbox.getContext().createPlugInContext()),
+ BorderLayout.NORTH);
+ fullPanel.add(optionPanel(toolbox), BorderLayout.SOUTH);
+
+ return fullPanel;
+ }
+
}
Modified:
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/utils/WorkbenchUtils.java
===================================================================
---
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/utils/WorkbenchUtils.java
2020-07-16 11:11:52 UTC (rev 6356)
+++
plug-ins/CADExtension/trunk/src/org/openjump/advancedtools/utils/WorkbenchUtils.java
2020-07-16 11:17:33 UTC (rev 6357)
@@ -1,5 +1,5 @@
/*
- * Kosmo - Sistema Abierto de Informaci\xF3n Geogr\xE1fica
+ * Kosmo - Sistema Abierto de Informaci�n Geogr�fica
* Kosmo - Open Geographical Information System
*
* http://www.saig.es
@@ -21,16 +21,16 @@
*
* For more information, contact:
*
- * Sistemas Abiertos de Informaci\xF3n Geogr\xE1fica, S.L.
- * Avnda. Rep\xFAblica Argentina, 28
- * Edificio Domocenter Planta 2\xAA Oficina 7
+ * Sistemas Abiertos de Informaci�n Geogr�fica, S.L.
+ * Avnda. Rep�blica Argentina, 28
+ * Edificio Domocenter Planta 2� Oficina 7
* C.P.: 41930 - Bormujos (Sevilla)
- * Espa\xF1a / Spain
+ * Espa�a / Spain
*
- * Tel\xE9fono / Phone Number
+ * Tel�fono / Phone Number
* +34 954 788876
*
- * Correo electr\xF3nico / Email
+ * Correo electr�nico / Email
* [email protected]
*
*/
@@ -44,17 +44,27 @@
import java.awt.Toolkit;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D;
+import java.io.File;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Locale;
+import java.util.Properties;
+import javax.swing.ImageIcon;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
import org.apache.log4j.Logger;
import org.openjump.advancedtools.language.I18NPlug;
+import org.openjump.core.ui.plugin.customize.PythonToolsPlugIn;
+import org.openjump.util.python.JUMP_GIS_Framework;
+import org.openjump.util.python.ModifyGeometry;
+import org.openjump.util.python.PythonInteractiveInterpreter;
+import org.python.core.PySystemState;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Envelope;
@@ -79,6 +89,7 @@
import com.vividsolutions.jump.workbench.ui.EditOptionsPanel;
import com.vividsolutions.jump.workbench.ui.LayerNamePanel;
import com.vividsolutions.jump.workbench.ui.LayerViewPanel;
+import com.vividsolutions.jump.workbench.ui.MenuNames;
import com.vividsolutions.jump.workbench.ui.SelectionManager;
import com.vividsolutions.jump.workbench.ui.SelectionManagerProxy;
import com.vividsolutions.jump.workbench.ui.TaskFrame;
@@ -93,10 +104,13 @@
import com.vividsolutions.jump.workbench.ui.cursortool.SelectFeaturesTool;
import com.vividsolutions.jump.workbench.ui.plugin.AddNewLayerPlugIn;
import com.vividsolutions.jump.workbench.ui.plugin.PersistentBlackboardPlugIn;
+import com.vividsolutions.jump.workbench.ui.toolbox.ToolboxDialog;
import com.vividsolutions.jump.workbench.ui.zoom.PanTool;
import com.vividsolutions.jump.workbench.ui.zoom.ZoomToSelectedItemsPlugIn;
import com.vividsolutions.jump.workbench.ui.zoom.ZoomTool;
+import bsh.util.JConsole;
+
/**
* <p>
* Helps to manage OpenJUMP Desktop actions
@@ -289,7 +303,7 @@
*
* @return List<Layer> de entre los layerables seleccioandos devuelve los
* que sean de tipo Layer. Nunca devuelve null, a lo sumo una lista
- * vac\xEDa.
+ * vac�a.
*/
public static List<Layer> getSelectedLayers() {
Layerable[] selectedLayers = getSelectedLayerables();
@@ -1141,4 +1155,67 @@
modelCoordinate.y));
}
+
+
+ static WorkbenchContext context
=JUMPWorkbench.getInstance().getContext();
+
+ public static JConsole console = new JConsole();
+
+/**
+ * This code allows to load Python console and tools into a generic
ToolboxDialog
+ * @param toolbox
+ */
+ public static void loadPython(ToolboxDialog toolbox){
+
+ console.setPreferredSize(new Dimension(450, 120));
+ PythonToolsPlugIn pPlugIn = new PythonToolsPlugIn();
+ console
+ .println(new
ImageIcon(pPlugIn.getClass().getResource("jython_small_c.png")));
+ // toolbox.getCenterPanel().add(console,
BorderLayout.CENTER);
+ // toolbox.setTitle("Jython");
+ // setup the interpreter
+ ClassLoader classLoader = context.getWorkbench()
+ .getPlugInManager().getClassLoader();
+ Properties preProperties = new
Properties(System.getProperties());
+ String homepath = preProperties.getProperty("user.home");
+
+ String sep = File.separator;
+ // -- [sstein] - old */
+ /*
+ * String WORKING_DIR = empty.getAbsoluteFile().getParent() +
sep; String
+ * jarpathX = new String(WORKING_DIR + "lib"); String
startuppathX = new
+ * String(WORKING_DIR + "lib" + sep + "ext" + sep + "jython" +
sep);
+ */
+ // -- [sstein] - new
+ File plugInDirectory = context.getWorkbench()
+ .getPlugInManager().getPlugInDirectory();
+ String jarpath = plugInDirectory.getPath();
+ String startuppath = plugInDirectory.getPath() + sep + "jython"
+ sep;
+
+ Properties postProperties = new Properties();
+ postProperties.put("python.home", homepath);
+ postProperties.put("python.path", startuppath);
+ PySystemState.initialize(preProperties, postProperties,
+ new String[] { "" }, classLoader);
+ String startupfile = startuppath + "CADstartup.py";
+ PySystemState.add_extdir(jarpath);
+ PySystemState.add_extdir(jarpath + sep + "ext");
+ PythonInteractiveInterpreter interpreter = new
PythonInteractiveInterpreter(
+ console);
+ interpreter.set("wc", context);
+ interpreter.set("toolbox", toolbox);
+ interpreter.set("startuppath", startuppath);
+ interpreter.exec("import sys");
+ JUMP_GIS_Framework.setWorkbenchContext(context);
+ ModifyGeometry.setWorkbenchContext(context);
+ toolbox.addToolBar(); // add a new tool bar to the console
+ JMenuBar jMenuBar = new JMenuBar();
+ jMenuBar.add(new JMenu(MenuNames.TOOLS));
+ toolbox.setJMenuBar(jMenuBar);
+ if (new File(startupfile).exists())
+ interpreter.execfile(startupfile);
+ new Thread(interpreter).start();
+ }
+
+
}
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel