diff --git a/prism/lib/jcommon.jar b/prism/lib/jcommon.jar index a44d0d31..f7e63239 100755 Binary files a/prism/lib/jcommon.jar and b/prism/lib/jcommon.jar differ diff --git a/prism/lib/jfreechart.jar b/prism/lib/jfreechart.jar index 3a38395f..39d4dc5c 100755 Binary files a/prism/lib/jfreechart.jar and b/prism/lib/jfreechart.jar differ diff --git a/prism/src/userinterface/graph/Graph.java b/prism/src/userinterface/graph/Graph.java index 6dad6acb..21b34c59 100644 --- a/prism/src/userinterface/graph/Graph.java +++ b/prism/src/userinterface/graph/Graph.java @@ -174,6 +174,7 @@ public class Graph extends ChartPanel implements SettingOwner, EntityResolver, O // Some easy references chart = super.getChart(); plot = chart.getXYPlot(); + plot.setBackgroundPaint((Paint)Color.white); seriesCollection = (XYSeriesCollection) plot.getDataset(); xAxisSettings = new AxisSettings("X", true, this); @@ -195,15 +196,17 @@ public class Graph extends ChartPanel implements SettingOwner, EntityResolver, O renderer.setBaseShapesVisible(true); renderer.setBaseShapesFilled(true); renderer.setDrawSeriesLineAsPath(true); + renderer.setAutoPopulateSeriesPaint(true); + renderer.setAutoPopulateSeriesShape(true); } plot.setDrawingSupplier(new DefaultDrawingSupplier( - DefaultDrawingSupplier.DEFAULT_PAINT_SEQUENCE, + SeriesSettings.DEFAULT_PAINTS, DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE, DefaultDrawingSupplier.DEFAULT_STROKE_SEQUENCE, DefaultDrawingSupplier.DEFAULT_OUTLINE_STROKE_SEQUENCE, - SeriesSettings.DEFAULT_SHAPE_SEQUENCE - )); + SeriesSettings.DEFAULT_SHAPES + )); super.setPopupMenu(null); @@ -377,11 +380,11 @@ public class Graph extends ChartPanel implements SettingOwner, EntityResolver, O return seriesCollection; } - public Vector getAllSeriesKeys() + public java.util.Vector getAllSeriesKeys() { synchronized (seriesCollection) { - Vector result = new Vector(); + java.util.Vector result = new java.util.Vector(); for (Map.Entry entries : keyToSeries.entrySet()) { @@ -652,12 +655,12 @@ public class Graph extends ChartPanel implements SettingOwner, EntityResolver, O } } - public void moveUp(Vector keys) + public void moveUp(java.util.Vector keys) { synchronized (seriesCollection) { XYSeries[] newOrder = new XYSeries[seriesCollection.getSeriesCount()]; - Vector moveUpSet = new Vector(); + java.util.Vector moveUpSet = new java.util.Vector(); for (int i = 0; i < newOrder.length; i++) newOrder[i] = seriesCollection.getSeries(i); @@ -690,12 +693,12 @@ public class Graph extends ChartPanel implements SettingOwner, EntityResolver, O } } - public void moveDown(Vector keys) + public void moveDown(java.util.Vector keys) { synchronized (seriesCollection) { XYSeries[] newOrder = new XYSeries[seriesCollection.getSeriesCount()]; - Vector moveDownSet = new Vector(); + java.util.Vector moveDownSet = new java.util.Vector(); for (int i = 0; i < newOrder.length; i++) newOrder[i] = seriesCollection.getSeries(i); diff --git a/prism/src/userinterface/graph/SeriesSettings.java b/prism/src/userinterface/graph/SeriesSettings.java index a382555c..ee0c346b 100644 --- a/prism/src/userinterface/graph/SeriesSettings.java +++ b/prism/src/userinterface/graph/SeriesSettings.java @@ -61,7 +61,14 @@ public class SeriesSettings extends Observable implements SettingOwner public static final int SOLID = 0; public static final int DASHED = 1; public static final int DOT_DASHED = 2; - + + public static final int BLUE = 0; + public static final int GREEN = 1; + public static final int RED = 2; + public static final int CYAN = 3; + public static final int PURPLE = 4; + public static final int YELLOW = 5; + public static final int BROWN = 5; public static final Shape[] DEFAULT_SHAPE_SEQUENCE = { DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE[1], // CIRCLE @@ -71,25 +78,36 @@ public class SeriesSettings extends Observable implements SettingOwner DefaultDrawingSupplier.DEFAULT_SHAPE_SEQUENCE[8], // RECTANGLE_V }; - /*protected static final Shape[] SHAPES = { - DEFAULT_SHAPE_SEQUENCE[CIRCLE], - DEFAULT_SHAPE_SEQUENCE[SQUARE], - DEFAULT_SHAPE_SEQUENCE[TRIANGLE], - DEFAULT_SHAPE_SEQUENCE[RECTANGLE_H], - DEFAULT_SHAPE_SEQUENCE[RECTANGLE_V], - new Rectangle2D.Double(0,0,0,0) // NONE - };*/ - // Use slightly smaller point shapes than the JFreeChart standards protected static int triPointsX[] = {-2,2,0}; protected static int triPointsY[] = {-2,-2,2}; - protected static final Shape[] SHAPES = { + + /* List of all shapes, including empty shape */ + protected static final Shape[] SHAPES = { new Ellipse2D.Double(-2,-2,4,4), new Rectangle2D.Double(-2,-2,4,4), new Polygon(triPointsX, triPointsY, 3), new Rectangle2D.Double(-2,-1,4,2), new Rectangle2D.Double(-1,-2,2,4), new Rectangle2D.Double(0,0,0,0) // NONE + }; + + protected static final Shape[] DEFAULT_SHAPES = { + SHAPES[CIRCLE], + SHAPES[SQUARE], + SHAPES[TRIANGLE], + SHAPES[RECTANGLE_H], + SHAPES[RECTANGLE_V] + }; + + protected static final Paint[] DEFAULT_PAINTS = { + Color.blue, + new Color(0, 127, 0), + Color.red, + new Color(0, 191, 191), + new Color(191, 0, 191), + new Color(191, 191, 0), + new Color(0.6f, 0.2f, 0f) }; /** Graph object. */ @@ -150,7 +168,7 @@ public class SeriesSettings extends Observable implements SettingOwner if (seriesIndex >= 0) { /* Set series colour. */ - if (renderer.getSeriesPaint(seriesIndex) instanceof Color) + if (renderer.lookupSeriesPaint(seriesIndex) instanceof Color) { try { @@ -172,7 +190,8 @@ public class SeriesSettings extends Observable implements SettingOwner /* Set showPoints. */ try { - Boolean pointsVisibleFlag = renderer.getSeriesShapesVisible(seriesIndex); + // just do it. + Boolean pointsVisibleFlag = true; showPoints.setValue(new Boolean(pointsVisibleFlag == null || pointsVisibleFlag.booleanValue())); } catch (SettingException e) @@ -180,7 +199,7 @@ public class SeriesSettings extends Observable implements SettingOwner } /* Set seriesShape. */ - Shape shape = renderer.getSeriesShape(seriesIndex); + Shape shape = renderer.lookupSeriesShape(seriesIndex); try { @@ -188,7 +207,7 @@ public class SeriesSettings extends Observable implements SettingOwner for (int i = CIRCLE; i < NONE; i++) { - if (ShapeUtilities.equal(shape, DEFAULT_SHAPE_SEQUENCE[i])) + if (ShapeUtilities.equal(shape, SHAPES[i])) { seriesShape.setSelectedIndex(i); foundShape = true; @@ -207,7 +226,7 @@ public class SeriesSettings extends Observable implements SettingOwner /* Set showLines. */ try { - Boolean linesVisibleFlag = renderer.getSeriesLinesVisible(seriesIndex); + Boolean linesVisibleFlag = true; showLines.setValue(new Boolean(linesVisibleFlag == null || linesVisibleFlag.booleanValue())); } catch (SettingException e) @@ -469,7 +488,8 @@ public class SeriesSettings extends Observable implements SettingOwner if (seriesIndex >= 0) { /* Set series colour. */ - if (!renderer.getSeriesPaint(seriesIndex).equals(seriesColour)) + if (renderer.getSeriesPaint(seriesIndex) == null || + !renderer.getSeriesPaint(seriesIndex).equals(seriesColour)) { renderer.setSeriesPaint(seriesIndex, seriesColour.getColorValue()); } diff --git a/prism/src/userinterface/model/GUITextModelEditor.java b/prism/src/userinterface/model/GUITextModelEditor.java index 3078aeed..2f2ee19d 100644 --- a/prism/src/userinterface/model/GUITextModelEditor.java +++ b/prism/src/userinterface/model/GUITextModelEditor.java @@ -49,6 +49,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.Stack; import prism.PrismLangException; import prism.PrismSettings; @@ -232,9 +233,9 @@ public class GUITextModelEditor extends GUIModelEditor implements DocumentListen inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, java.awt.event.InputEvent.CTRL_MASK), "prism_selectall"); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_D, java.awt.event.InputEvent.CTRL_MASK), "prism_delete"); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK), "prism_cut"); + inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, java.awt.event.InputEvent.CTRL_MASK | java.awt.event.InputEvent.SHIFT_MASK), "prism_redo"); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK), "prism_paste"); inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_E, java.awt.event.InputEvent.CTRL_MASK), "prism_jumperr"); - inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, java.awt.event.InputEvent.CTRL_MASK | java.awt.event.InputEvent.SHIFT_MASK), "prism_redo"); ActionMap actionMap = editor.getActionMap(); actionMap.put("prism_undo", GUIPrism.getClipboardPlugin().getUndoAction()); @@ -246,6 +247,49 @@ public class GUITextModelEditor extends GUIModelEditor implements DocumentListen actionMap.put("prism_delete", GUIPrism.getClipboardPlugin().getDeleteAction()); actionMap.put("prism_jumperr", actionJumpToError); + // Attempt to programmatically allow all accelerators + /*ArrayList plugins = ((GUIMultiModel)handler.getGUIPlugin()).getGUI().getPlugins(); + Iterator it = plugins.iterator(); + + while (it.hasNext()) + { + GUIPlugin plugin = ((GUIPlugin)it.next()); + System.out.println(plugin.getName()); + JMenu firstMenu = plugin.getMenu(); + + Stack menuStack = new Stack(); + + menuStack.add(firstMenu); + + while (!menuStack.empty()) + { + MenuElement menu = menuStack.pop(); + + if (menu instanceof JMenuItem) + { + JMenuItem menuItem = ((JMenuItem)menu); + + KeyStroke accelerator = menuItem.getAccelerator(); + Action action = menuItem.getAction(); + + if (action != null && accelerator != null && menuItem.getText() != null) + { + System.out.println(menuItem.getText() + " " + menuItem.getName()); + inputMap.put(accelerator, "prism_" + menuItem.getText()); + actionMap.put("prism_" + menuItem.getText(), action); + } + } + + MenuElement[] subelements = menu.getSubElements(); + + if (subelements != null) + { + for (int i = 0; i < subelements.length; i++) + menuStack.push(subelements[i]); + } + } + }*/ + editor.getDocument().addUndoableEditListener(undoManager); diff --git a/prism/src/userinterface/properties/GUIGraphPicker.java b/prism/src/userinterface/properties/GUIGraphPicker.java index a2908049..d83c1126 100644 --- a/prism/src/userinterface/properties/GUIGraphPicker.java +++ b/prism/src/userinterface/properties/GUIGraphPicker.java @@ -59,7 +59,7 @@ public class GUIGraphPicker extends javax.swing.JDialog private DefinedConstant rangingConstant; private Values otherValues; - private Vector multiSeries; + private java.util.Vector multiSeries; private userinterface.graph.Graph graphModel; private boolean graphCancelled; @@ -92,7 +92,7 @@ public class GUIGraphPicker extends javax.swing.JDialog // (this means if the user closes the dialog, this counts as a cancel) this.graphCancelled = true; - this.multiSeries = new Vector(); + this.multiSeries = new java.util.Vector(); initComponents(); setResizable(false); @@ -108,7 +108,7 @@ public class GUIGraphPicker extends javax.swing.JDialog if (!graphCancelled) { /* Collect series keys. */ - Vector seriesKeys = new Vector(); + java.util.Vector seriesKeys = new java.util.Vector(); /* Collect series Values */ ArrayList seriesValues = new ArrayList(); @@ -299,7 +299,7 @@ public class GUIGraphPicker extends javax.swing.JDialog ranger = selectAxisConstantCombo.getSelectedItem().toString(); // init arrays otherValues = new Values(); - multiSeries = new Vector(); + multiSeries = new java.util.Vector(); // go through constants in picker list for(int j = 0; j < pickerList.getNumConstants(); j++) { @@ -582,7 +582,7 @@ public class GUIGraphPicker extends javax.swing.JDialog // init arrays otherValues = new Values(); - multiSeries = new Vector(); + multiSeries = new java.util.Vector(); // go through all constants in picker list for(int j = 0; j < pickerList.getNumConstants(); j++)