Improved "Recently Used" toolbox, doesn't jump as you click

This commit is contained in:
bancika
2012-08-17 11:38:01 +00:00
parent 6ef7459d46
commit 39704e3625
2 changed files with 23 additions and 4 deletions
@@ -39,6 +39,8 @@ class ComponentTabbedPane extends JTabbedPane {
public static int SCROLL_STEP = Presenter.ICON_SIZE + ComponentButton.MARGIN * 2 + 2; public static int SCROLL_STEP = Presenter.ICON_SIZE + ComponentButton.MARGIN * 2 + 2;
private final IPlugInPort plugInPort; private final IPlugInPort plugInPort;
private Container recentToolbar;
private List<String> pendingRecentComponents = null;
public ComponentTabbedPane(IPlugInPort plugInPort) { public ComponentTabbedPane(IPlugInPort plugInPort) {
super(); super();
@@ -56,6 +58,12 @@ class ComponentTabbedPane extends JTabbedPane {
@Override @Override
public void stateChanged(ChangeEvent e) { public void stateChanged(ChangeEvent e) {
ComponentTabbedPane.this.plugInPort.setNewComponentTypeSlot(null); ComponentTabbedPane.this.plugInPort.setNewComponentTypeSlot(null);
// Refresh recent components if needed
if (pendingRecentComponents != null) {
refreshRecentComponentsToolbar(getRecentToolbar(), pendingRecentComponents);
getRecentToolbar().invalidate();
pendingRecentComponents = null;
}
} }
}); });
} }
@@ -112,6 +120,14 @@ class ComponentTabbedPane extends JTabbedPane {
// scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); // scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
// return scrollPane; // return scrollPane;
// } // }
public Container getRecentToolbar() {
if (recentToolbar == null) {
recentToolbar = new Container();
recentToolbar.setLayout(new BoxLayout(recentToolbar, BoxLayout.X_AXIS));
}
return recentToolbar;
}
private Component createComponentPanel(List<ComponentType> componentTypes) { private Component createComponentPanel(List<ComponentType> componentTypes) {
Container toolbar = new Container(); Container toolbar = new Container();
@@ -130,8 +146,7 @@ class ComponentTabbedPane extends JTabbedPane {
JPanel panel = new JPanel(new BorderLayout()); JPanel panel = new JPanel(new BorderLayout());
panel.setOpaque(false); panel.setOpaque(false);
final Container toolbar = new Container(); final Container toolbar = getRecentToolbar();
toolbar.setLayout(new BoxLayout(toolbar, BoxLayout.X_AXIS));
refreshRecentComponentsToolbar(toolbar, (List<String>) ConfigurationManager.getInstance() refreshRecentComponentsToolbar(toolbar, (List<String>) ConfigurationManager.getInstance()
.readObject(IPlugInPort.RECENT_COMPONENTS_KEY, new ArrayList<String>())); .readObject(IPlugInPort.RECENT_COMPONENTS_KEY, new ArrayList<String>()));
ConfigurationManager.getInstance().addConfigListener(IPlugInPort.RECENT_COMPONENTS_KEY, ConfigurationManager.getInstance().addConfigListener(IPlugInPort.RECENT_COMPONENTS_KEY,
@@ -139,8 +154,8 @@ class ComponentTabbedPane extends JTabbedPane {
@Override @Override
public void valueChanged(String key, Object value) { public void valueChanged(String key, Object value) {
refreshRecentComponentsToolbar(toolbar, (List<String>) value); // Cache the new list, we'll refresh when there's a chance
toolbar.invalidate(); pendingRecentComponents = (List<String>) value;
} }
}); });
@@ -650,6 +650,10 @@
<changeType>IMPROVEMENT</changeType> <changeType>IMPROVEMENT</changeType>
<description>Remove junk from BOM (eyelets, wires, traces)</description> <description>Remove junk from BOM (eyelets, wires, traces)</description>
</org.diylc.appframework.update.Change> </org.diylc.appframework.update.Change>
<org.diylc.appframework.update.Change>
<changeType>IMPROVEMENT</changeType>
<description>Improved "Recently Used" toolbox, doesn't jump as you click</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>