diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch index 11d120ec..46aa4835 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/DIYLCStarter.launch @@ -11,5 +11,5 @@ - + diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java index e402edb3..9631373d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/autosave/AutoSavePlugin.java @@ -17,14 +17,17 @@ public class AutoSavePlugin implements IPlugIn { private static final String AUTO_SAVE_FILE_NAME = "autoSave.diy"; + protected static final long autoSaveFrequency = 60 * 1000; + private ExecutorService executor; private IPlugInPort plugInPort; private IView view; + private long lastSave = 0; public AutoSavePlugin(IView view) { this.view = view; - executor = Executors.newSingleThreadExecutor(); + executor = Executors.newSingleThreadExecutor(); } @Override @@ -34,20 +37,23 @@ public class AutoSavePlugin implements IPlugIn { @Override public void run() { - boolean wasAbnormal = ConfigurationManager.getInstance().readBoolean( - IPlugInPort.ABNORMAL_EXIT_KEY, false); + boolean wasAbnormal = ConfigurationManager.getInstance() + .readBoolean(IPlugInPort.ABNORMAL_EXIT_KEY, false); if (wasAbnormal && new File(AUTO_SAVE_FILE_NAME).exists()) { int decision = view .showConfirmDialog( "It appears that aplication was not closed normally in the previous session. Do you want to open the last auto-saved file?", - "Auto-Save", IView.YES_NO_OPTION, IView.QUESTION_MESSAGE); + "Auto-Save", IView.YES_NO_OPTION, + IView.QUESTION_MESSAGE); if (decision == IView.YES_OPTION) { - AutoSavePlugin.this.plugInPort.loadProjectFromFile(AUTO_SAVE_FILE_NAME); + AutoSavePlugin.this.plugInPort + .loadProjectFromFile(AUTO_SAVE_FILE_NAME); } } // Set abnormal flag to true, GUI side of the app must flip to // false when app closes regularly. - ConfigurationManager.getInstance().writeValue(IPlugInPort.ABNORMAL_EXIT_KEY, true); + ConfigurationManager.getInstance().writeValue( + IPlugInPort.ABNORMAL_EXIT_KEY, true); } }); } @@ -64,7 +70,11 @@ public class AutoSavePlugin implements IPlugIn { @Override public void run() { - plugInPort.saveProjectToFile(AUTO_SAVE_FILE_NAME, true); + Thread.currentThread().setPriority(Thread.MIN_PRIORITY); + if (System.currentTimeMillis() - lastSave > autoSaveFrequency) { + lastSave = System.currentTimeMillis(); + plugInPort.saveProjectToFile(AUTO_SAVE_FILE_NAME, true); + } } }); } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java index bc226d7b..b17542dc 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/statusbar/StatusBar.java @@ -263,8 +263,8 @@ public class StatusBar extends JPanel implements IPlugIn { StringBuilder builder = new StringBuilder(); builder.append(Utils.toCommaString(selectedComponentNames.subList(0, Math.min(20, selectedComponentNames.size())))); - if (selectedComponentNames.size() > 20) { - builder.append(" and " + (selectedComponentNames.size() - 20) + " more"); + if (selectedComponentNames.size() > 15) { + builder.append(" and " + (selectedComponentNames.size() - 15) + " more"); } if (!stuckComponentNames.isEmpty()) { builder.append(" (hold Ctrl and drag to unstuck from ");