From e5113e110efb6572c937b822da426c5c4a793616 Mon Sep 17 00:00:00 2001 From: bancika Date: Sat, 29 Jan 2011 22:00:01 +0000 Subject: [PATCH] reset component selection when switching tabs --- .../plugins/toolbox/ComponentTabbedPane.java | 25 ++++++++++++------- .../diylc/swing/plugins/toolbox/ToolBox.java | 13 +++++++++- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java index ea19bd86..09fdd827 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ComponentTabbedPane.java @@ -11,9 +11,9 @@ import java.util.Map; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JPanel; -import javax.swing.JScrollPane; import javax.swing.JTabbedPane; -import javax.swing.ScrollPaneConstants; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; import org.diylc.common.ComponentType; import org.diylc.common.IPlugInPort; @@ -42,6 +42,13 @@ class ComponentTabbedPane extends JTabbedPane { JPanel panel = createTab((componentTypes.get(category))); addTab(category, panel); } + addChangeListener(new ChangeListener() { + + @Override + public void stateChanged(ChangeEvent e) { + ComponentTabbedPane.this.plugInPort.setNewComponentTypeSlot(null); + } + }); } private JPanel createTab(List componentTypes) { @@ -87,13 +94,13 @@ class ComponentTabbedPane extends JTabbedPane { return panel; } - private JScrollPane createComponentScrollBar(List componentTypes) { - JScrollPane scrollPane = new JScrollPane(createComponentPanel(componentTypes)); - scrollPane.setOpaque(false); - scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); - return scrollPane; - } +// private JScrollPane createComponentScrollBar(List componentTypes) { +// JScrollPane scrollPane = new JScrollPane(createComponentPanel(componentTypes)); +// scrollPane.setOpaque(false); +// scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); +// scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); +// return scrollPane; +// } private Component createComponentPanel(List componentTypes) { Container toolbar = new Container(); diff --git a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java index 2aca3ab9..e8c02b59 100644 --- a/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java +++ b/ diy-layout-creator --username bancika@gmail.com/DIYLC/src/org/diylc/swing/plugins/toolbox/ToolBox.java @@ -18,6 +18,9 @@ public class ToolBox implements IPlugIn { private static final Logger LOG = Logger.getLogger(StatusBar.class); private ISwingUI swingUI; + private IPlugInPort plugInPort; + + private ComponentTabbedPane componentTabbedPane; public ToolBox(ISwingUI swingUI) { this.swingUI = swingUI; @@ -25,12 +28,20 @@ public class ToolBox implements IPlugIn { @Override public void connect(IPlugInPort plugInPort) { + this.plugInPort = plugInPort; try { - swingUI.injectGUIComponent(new ComponentTabbedPane(plugInPort), SwingConstants.TOP); + swingUI.injectGUIComponent(getComponentTabbedPane(), SwingConstants.TOP); } catch (BadPositionException e) { LOG.error("Could not install the toolbox", e); } } + + public ComponentTabbedPane getComponentTabbedPane() { + if (componentTabbedPane == null) { + componentTabbedPane = new ComponentTabbedPane(plugInPort); + } + return componentTabbedPane; + } @Override public EnumSet getSubscribedEventTypes() {