diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-19 16:24:25 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-19 16:24:25 +0000 |
| commit | 1737afec7bc9b13e31934913510ff00aa2cdb5d3 (patch) | |
| tree | 1c0b07f5ab1b651ed3775d79a0681533cbe2f59e | |
| parent | 3f40213c906b4017d56ef31a9a82f0b5d0905229 (diff) | |
Anti-Aliasing checkbox works.
| -rw-r--r-- | sources/prefs/VSDefaultPrefs.java | 1 | ||||
| -rw-r--r-- | sources/simulator/VSSimulation.java | 11 | ||||
| -rw-r--r-- | sources/simulator/VSSimulationPanel.java | 16 | ||||
| -rw-r--r-- | sources/utils/VSFrame.java | 18 |
4 files changed, 38 insertions, 8 deletions
diff --git a/sources/prefs/VSDefaultPrefs.java b/sources/prefs/VSDefaultPrefs.java index 4af2fff..41dd77d 100644 --- a/sources/prefs/VSDefaultPrefs.java +++ b/sources/prefs/VSDefaultPrefs.java @@ -52,6 +52,7 @@ public class VSDefaultPrefs extends VSPrefs { initString("lang.colorchooser", "Farbauswahl"); initString("lang.colorchooser2", "Bitte Farbe auswählen"); initString("lang.crash", "Abstürzen"); + initString("lang.antialiasing", "Anti-Aliasing"); initString("lang.all", "Alle"); initString("lang.crashed", "Abgestürzt"); initString("lang.deactivate", "deaktivieren"); diff --git a/sources/simulator/VSSimulation.java b/sources/simulator/VSSimulation.java index 1481c70..d10fec2 100644 --- a/sources/simulator/VSSimulation.java +++ b/sources/simulator/VSSimulation.java @@ -258,6 +258,17 @@ public class VSSimulation extends VSFrame implements ActionListener { }); toolsPanel.add(vectorTimeActiveCheckBox); + JCheckBox antiAliasing = new JCheckBox(prefs.getString("lang.antialiasing")); + antiAliasing.setSelected(false); + antiAliasing.addChangeListener(new ChangeListener() { + public void stateChanged(ChangeEvent ce) { + AbstractButton abstractButton = (AbstractButton) ce.getSource(); + ButtonModel buttonModel = abstractButton.getModel(); + simulationPanel.isAntiAliased(buttonModel.isSelected()); + } + }); + toolsPanel.add(antiAliasing); + JCheckBox loggingActiveCheckBox = new JCheckBox(prefs.getString("lang.logging.active")); loggingActiveCheckBox.setSelected(true); loggingActiveCheckBox.addChangeListener(new ChangeListener() { diff --git a/sources/simulator/VSSimulationPanel.java b/sources/simulator/VSSimulationPanel.java index 8ee8f40..a978d1b 100644 --- a/sources/simulator/VSSimulationPanel.java +++ b/sources/simulator/VSSimulationPanel.java @@ -28,6 +28,8 @@ public class VSSimulationPanel extends Canvas implements Runnable, MouseMotionLi private volatile boolean isFinalized = false; private volatile boolean isFinished = false; private volatile boolean isResetted = false; + private volatile boolean isAntiAliased = false; + private volatile boolean isAntiAliasedChanged = false; private volatile boolean showLamport = false; private volatile boolean showVectorTime = false; private volatile long pauseTime; @@ -240,6 +242,8 @@ public class VSSimulationPanel extends Canvas implements Runnable, MouseMotionLi //setPreferredSize(new Dimension(simulation.getWidth()-simulation.getSplitSize(),(int)paintSize-20)); g = (Graphics2D) strategy.getDrawGraphics(); g.setColor(Color.WHITE); + if (isAntiAliased) + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); } } } @@ -300,6 +304,13 @@ public class VSSimulationPanel extends Canvas implements Runnable, MouseMotionLi } synchronized (strategy) { + if (isAntiAliasedChanged) { + if (isAntiAliased) + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + else + g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); + isAntiAliasedChanged = false; + } g.fillRect(0, 0, getWidth(), getHeight()); final long globalTime = time; @@ -647,6 +658,11 @@ public class VSSimulationPanel extends Canvas implements Runnable, MouseMotionLi paint(); } + public void isAntiAliased(boolean isAntiAliased) { + this.isAntiAliased = isAntiAliased; + this.isAntiAliasedChanged = true; + } + public void sendMessage(VSMessage message) { VSTask task = null; VSProcess sendingProcess = message.getSendingProcess(); diff --git a/sources/utils/VSFrame.java b/sources/utils/VSFrame.java index 32392b8..608011b 100644 --- a/sources/utils/VSFrame.java +++ b/sources/utils/VSFrame.java @@ -51,17 +51,19 @@ public class VSFrame extends JFrame { y = (int) location.getY() + Y_LOCATION_OFFSET; } - if (x + super.getWidth() >= screenSize.width) - x = screenSize.width - super.getWidth(); + if (x + super.getWidth() >= screenSize.width) + x = screenSize.width - super.getWidth(); + else if (x < 0) + x = 0; - if (y + super.getHeight() >= screenSize.height) - y = screenSize.height - super.getHeight(); + if (y + super.getHeight() >= screenSize.height) + y = screenSize.height - super.getHeight(); super.setLocation(x, y); } - public void setSize(int width, int height) { - super.setSize(width, height); - setCorrectLocation(); - } + public void setSize(int width, int height) { + super.setSize(width, height); + setCorrectLocation(); + } } |
