mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
Added "Snap To Objects" feature that snaps control points to control
points of the nearest components
This commit is contained in:
Binary file not shown.
@@ -241,6 +241,10 @@ public class ActionFactory {
|
||||
String tipKey) {
|
||||
return new ConfigAction(plugInPort, title, configKey, defaultValue, tipKey);
|
||||
}
|
||||
|
||||
public ToggleAction createToggleAction(String title, String configKey, String groupName, String defaultValue) {
|
||||
return new ToggleAction(title, configKey, groupName, defaultValue);
|
||||
}
|
||||
|
||||
public ThemeAction createThemeAction(IPlugInPort plugInPort, Theme theme) {
|
||||
return new ThemeAction(plugInPort, theme);
|
||||
@@ -1575,6 +1579,27 @@ public class ActionFactory {
|
||||
plugInPort.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
public static class ToggleAction extends AbstractAction {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String configKey;
|
||||
|
||||
public ToggleAction(String title, String configKey, String groupName, String defaultValue) {
|
||||
super();
|
||||
this.configKey = configKey;
|
||||
putValue(AbstractAction.NAME, title);
|
||||
putValue(IView.RADIO_BUTTON_GROUP_KEY, groupName);
|
||||
putValue(AbstractAction.SELECTED_KEY, ConfigurationManager.getInstance().readString(configKey, defaultValue).equalsIgnoreCase(title));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LOG.info(getValue(AbstractAction.NAME) + " toggle triggered");
|
||||
ConfigurationManager.getInstance().writeValue(configKey, getValue(AbstractAction.NAME));
|
||||
}
|
||||
}
|
||||
|
||||
public static class ThemeAction extends AbstractAction {
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ public class ConfigPlugin implements IPlugIn {
|
||||
|
||||
private static final String CONFIG_MENU = "Config";
|
||||
private static final String THEME_MENU = "Theme";
|
||||
private static final String SNAP_MENU = "Snap To...";
|
||||
private static final String COMPONENT_BROWSER_MENU = "Toolbox";
|
||||
public static final String COMPONENT_BROWSER = "componentBrowser";
|
||||
public static final String SEARCHABLE_TREE = "Searchable Tree";
|
||||
@@ -96,12 +97,19 @@ public class ConfigPlugin implements IPlugIn {
|
||||
swingUI.injectMenuAction(
|
||||
ActionFactory.getInstance().createConfigAction(plugInPort, "Show Rulers", IPlugInPort.SHOW_RULERS_KEY, true),
|
||||
CONFIG_MENU);
|
||||
swingUI.injectSubmenu(SNAP_MENU, null, CONFIG_MENU);
|
||||
swingUI.injectMenuAction(
|
||||
ActionFactory.getInstance().createConfigAction(plugInPort, "Show Grid", IPlugInPort.SHOW_GRID_KEY, true),
|
||||
CONFIG_MENU);
|
||||
swingUI.injectMenuAction(
|
||||
ActionFactory.getInstance().createConfigAction(plugInPort, "Snap to Grid", IPlugInPort.SNAP_TO_GRID_KEY, true),
|
||||
CONFIG_MENU);
|
||||
ActionFactory.getInstance().createToggleAction("None", IPlugInPort.SNAP_TO_KEY, SNAP_MENU, IPlugInPort.SNAP_TO_DEFAULT),
|
||||
SNAP_MENU);
|
||||
swingUI.injectMenuAction(
|
||||
ActionFactory.getInstance().createToggleAction("Grid", IPlugInPort.SNAP_TO_KEY, SNAP_MENU, IPlugInPort.SNAP_TO_DEFAULT),
|
||||
SNAP_MENU);
|
||||
swingUI.injectMenuAction(
|
||||
ActionFactory.getInstance().createToggleAction("Objects", IPlugInPort.SNAP_TO_KEY, SNAP_MENU, IPlugInPort.SNAP_TO_DEFAULT),
|
||||
SNAP_MENU);
|
||||
swingUI.injectMenuAction(
|
||||
ActionFactory.getInstance()
|
||||
.createConfigAction(plugInPort, "Sticky Points", IPlugInPort.STICKY_POINTS_KEY, true), CONFIG_MENU);
|
||||
|
||||
Reference in New Issue
Block a user