Transistors can show name or value

This commit is contained in:
bancika
2012-08-17 13:27:59 +00:00
parent 1c0219f4bf
commit 50bacee70a
4 changed files with 44 additions and 30 deletions
@@ -47,11 +47,13 @@ class CanvasPanel extends JComponent implements Autoscroll {
private static boolean USE_HARDWARE_ACCELLERATION = false; private static boolean USE_HARDWARE_ACCELLERATION = false;
// static final EnumSet<DrawOption> DRAW_OPTIONS = EnumSet.of(DrawOption.GRID, // static final EnumSet<DrawOption> DRAW_OPTIONS =
// DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS); // EnumSet.of(DrawOption.GRID,
// static final EnumSet<DrawOption> DRAW_OPTIONS_ANTI_ALIASING = EnumSet.of(DrawOption.GRID, // DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.CONTROL_POINTS);
// DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING, // static final EnumSet<DrawOption> DRAW_OPTIONS_ANTI_ALIASING =
// DrawOption.CONTROL_POINTS); // EnumSet.of(DrawOption.GRID,
// DrawOption.SELECTION, DrawOption.ZOOM, DrawOption.ANTIALIASING,
// DrawOption.CONTROL_POINTS);
public CanvasPanel(IPlugInPort plugInPort) { public CanvasPanel(IPlugInPort plugInPort) {
super(); super();
@@ -59,7 +61,8 @@ class CanvasPanel extends JComponent implements Autoscroll {
setFocusable(true); setFocusable(true);
initializeListeners(); initializeListeners();
initializeDnD(); initializeDnD();
GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsEnvironment graphicsEnvironment = GraphicsEnvironment
.getLocalGraphicsEnvironment();
GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices(); GraphicsDevice[] devices = graphicsEnvironment.getScreenDevices();
screenGraphicsConfiguration = devices[0].getDefaultConfiguration(); screenGraphicsConfiguration = devices[0].getDefaultConfiguration();
@@ -72,7 +75,8 @@ class CanvasPanel extends JComponent implements Autoscroll {
private void initializeDnD() { private void initializeDnD() {
// Initialize drag source recognizer. // Initialize drag source recognizer.
DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(this, DragSource.getDefaultDragSource().createDefaultDragGestureRecognizer(
this,
DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK, DnDConstants.ACTION_COPY_OR_MOVE | DnDConstants.ACTION_LINK,
new CanvasGestureListener(plugInPort)); new CanvasGestureListener(plugInPort));
// Initialize drop target. // Initialize drop target.
@@ -96,8 +100,8 @@ class CanvasPanel extends JComponent implements Autoscroll {
protected void createBufferImage() { protected void createBufferImage() {
if (USE_HARDWARE_ACCELLERATION) { if (USE_HARDWARE_ACCELLERATION) {
bufferImage = screenGraphicsConfiguration.createCompatibleVolatileImage(getWidth(), bufferImage = screenGraphicsConfiguration
getHeight()); .createCompatibleVolatileImage(getWidth(), getHeight());
((VolatileImage) bufferImage).validate(screenGraphicsConfiguration); ((VolatileImage) bufferImage).validate(screenGraphicsConfiguration);
} else { } else {
bufferImage = createImage(getWidth(), getHeight()); bufferImage = createImage(getWidth(), getHeight());
@@ -114,12 +118,15 @@ class CanvasPanel extends JComponent implements Autoscroll {
} }
Graphics2D g2d = (Graphics2D) bufferImage.getGraphics(); Graphics2D g2d = (Graphics2D) bufferImage.getGraphics();
g2d.setClip(getVisibleRect()); g2d.setClip(getVisibleRect());
Set<DrawOption> drawOptions = EnumSet.of(DrawOption.GRID, DrawOption.SELECTION, Set<DrawOption> drawOptions = EnumSet.of(DrawOption.GRID,
DrawOption.ZOOM, DrawOption.CONTROL_POINTS); DrawOption.SELECTION, DrawOption.ZOOM,
if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.ANTI_ALIASING_KEY, true)) { DrawOption.CONTROL_POINTS);
if (ConfigurationManager.getInstance().readBoolean(
IPlugInPort.ANTI_ALIASING_KEY, true)) {
drawOptions.add(DrawOption.ANTIALIASING); drawOptions.add(DrawOption.ANTIALIASING);
} }
if (ConfigurationManager.getInstance().readBoolean(IPlugInPort.OUTLINE_KEY, false)) { if (ConfigurationManager.getInstance().readBoolean(
IPlugInPort.OUTLINE_KEY, false)) {
drawOptions.add(DrawOption.OUTLINE_MODE); drawOptions.add(DrawOption.OUTLINE_MODE);
} }
plugInPort.draw(g2d, drawOptions, null); plugInPort.draw(g2d, drawOptions, null);
@@ -178,33 +185,35 @@ class CanvasPanel extends JComponent implements Autoscroll {
@Override @Override
public void mouseMoved(MouseEvent e) { public void mouseMoved(MouseEvent e) {
setCursor(plugInPort.getCursorAt(e.getPoint())); setCursor(plugInPort.getCursorAt(e.getPoint()));
plugInPort.mouseMoved(e.getPoint(), e.isControlDown(), e.isShiftDown(), e plugInPort.mouseMoved(e.getPoint(), e.isControlDown(), e
.isAltDown()); .isShiftDown(), e.isAltDown());
}
});
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
plugInPort.mouseClicked(e.getPoint(), e.getButton(), e
.isControlDown(), e.isShiftDown(), e.isAltDown(), e
.getClickCount());
}
} }
}); });
// addMouseListener(new MouseAdapter() {
//
// @Override
// public void mouseClicked(MouseEvent e) {
// if (e.getButton() == MouseEvent.BUTTON1) {
// plugInPort.mouseClicked(e.getPoint(), e.getButton(), e.isControlDown(), e.isShiftDown(), e
// .isAltDown(), e.getClickCount());
// }
// }
// });
} }
// Autoscroll // Autoscroll
@Override @Override
public void autoscroll(Point cursorLocn) { public void autoscroll(Point cursorLocn) {
scrollRectToVisible(new Rectangle(cursorLocn.x - 15, cursorLocn.y - 15, 30, 30)); scrollRectToVisible(new Rectangle(cursorLocn.x - 15, cursorLocn.y - 15,
30, 30));
} }
@Override @Override
public Insets getAutoscrollInsets() { public Insets getAutoscrollInsets() {
Rectangle rect = getVisibleRect(); Rectangle rect = getVisibleRect();
return new Insets(rect.y - 15, rect.x - 15, rect.y + rect.height + 15, rect.x + rect.width return new Insets(rect.y - 15, rect.x - 15, rect.y + rect.height + 15,
+ 15); rect.x + rect.width + 15);
} }
} }
@@ -31,6 +31,7 @@ import org.diylc.common.BadPositionException;
import org.diylc.common.EventType; import org.diylc.common.EventType;
import org.diylc.common.IPlugIn; import org.diylc.common.IPlugIn;
import org.diylc.common.IPlugInPort; import org.diylc.common.IPlugInPort;
import org.diylc.core.CreationMethod;
import org.diylc.core.ExpansionMode; import org.diylc.core.ExpansionMode;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
@@ -101,9 +102,9 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner {
@Override @Override
public void mouseReleased(MouseEvent e) { public void mouseReleased(MouseEvent e) {
if (plugInPort.getNewComponentTypeSlot() != null) { if (plugInPort.getNewComponentTypeSlot() != null && plugInPort.getNewComponentTypeSlot().getCreationMethod() == CreationMethod.SINGLE_CLICK) {
plugInPort.mouseClicked(e.getPoint(), e.getButton(), plugInPort.mouseClicked(e.getPoint(), e.getButton(),
false, false, false, 1); false, false, false, e.getClickCount());
} else if (e.isPopupTrigger()) { } else if (e.isPopupTrigger()) {
// Enable actions. // Enable actions.
boolean enabled = !plugInPort.getSelectedComponents() boolean enabled = !plugInPort.getSelectedComponents()
@@ -662,6 +662,10 @@
<changeType>IMPROVEMENT</changeType> <changeType>IMPROVEMENT</changeType>
<description>Faster component placement, auto-focus on "Value" box</description> <description>Faster component placement, auto-focus on "Value" box</description>
</org.diylc.appframework.update.Change> </org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Transistors can show name or value</description>
</org.diylc.appframework.update.Change>
</changes> </changes>
<url>http://code.google.com/p/diy-layout-creator/downloads/list</url> <url>http://code.google.com/p/diy-layout-creator/downloads/list</url>
</org.diylc.appframework.update.Version> </org.diylc.appframework.update.Version>