summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-19 16:24:25 +0000
committerPaul Buetow <paul@buetow.org>2008-05-19 16:24:25 +0000
commit1737afec7bc9b13e31934913510ff00aa2cdb5d3 (patch)
tree1c0b07f5ab1b651ed3775d79a0681533cbe2f59e
parent3f40213c906b4017d56ef31a9a82f0b5d0905229 (diff)
Anti-Aliasing checkbox works.
-rw-r--r--sources/prefs/VSDefaultPrefs.java1
-rw-r--r--sources/simulator/VSSimulation.java11
-rw-r--r--sources/simulator/VSSimulationPanel.java16
-rw-r--r--sources/utils/VSFrame.java18
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();
+ }
}