mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-11 01:32:08 +10:00
Improved "Recently Used" toolbox, doesn't jump as you click
This commit is contained in:
+19
-4
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -113,6 +121,14 @@ class ComponentTabbedPane extends JTabbedPane {
|
|||||||
// 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();
|
||||||
Collections.sort(componentTypes, ComparatorFactory.getInstance()
|
Collections.sort(componentTypes, ComparatorFactory.getInstance()
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user