diff --git a/.classpath b/.classpath index 11329e5f..73611f55 100644 --- a/.classpath +++ b/.classpath @@ -2,7 +2,12 @@ - - + + + + + + + diff --git a/.settings/com.gwtplugins.gwt.eclipse.core.prefs b/.settings/com.gwtplugins.gwt.eclipse.core.prefs index 01a247b0..58122bf8 100644 --- a/.settings/com.gwtplugins.gwt.eclipse.core.prefs +++ b/.settings/com.gwtplugins.gwt.eclipse.core.prefs @@ -1,3 +1,4 @@ +//gwtVersion_/Users/pf/Projects/gwt-sdk/gwt-2.11.0=2.11.0 eclipse.preferences.version=1 entryPointModules= filesCopiedToWebInfLib=gwt-servlet.jar diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs index ed4deb3d..8761c78e 100644 --- a/.settings/org.eclipse.jdt.core.prefs +++ b/.settings/org.eclipse.jdt.core.prefs @@ -11,6 +11,7 @@ org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.processAnnotations=enabled org.eclipse.jdt.core.compiler.release=disabled org.eclipse.jdt.core.compiler.source=1.8 org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647 diff --git a/src/com/lushprojects/circuitjs1/client/CommandManager.java b/src/com/lushprojects/circuitjs1/client/CommandManager.java index 7aa69a8d..10fdeec8 100644 --- a/src/com/lushprojects/circuitjs1/client/CommandManager.java +++ b/src/com/lushprojects/circuitjs1/client/CommandManager.java @@ -18,7 +18,7 @@ public class CommandManager { public void menuPerformed(String menu, String item) { PopupPanel contextPanel = app.ui.contextPanel; - if ((menu=="edit" || menu=="main" || menu=="scopes") && app.menus.noEditCheckItem.getState()) { + if ((menu=="edit" || menu=="main" || menu=="scopes") && app.ui.isReadOnly()) { Window.alert(Locale.LS("Editing disabled. Re-enable from the Options menu.")); return; } diff --git a/src/com/lushprojects/circuitjs1/client/MouseManager.java b/src/com/lushprojects/circuitjs1/client/MouseManager.java index f1c61b34..765507d1 100644 --- a/src/com/lushprojects/circuitjs1/client/MouseManager.java +++ b/src/com/lushprojects/circuitjs1/client/MouseManager.java @@ -245,7 +245,7 @@ public class MouseManager implements MouseDownHandler, MouseMoveHandler, MouseUp case MODE_SELECT: if (mouseElm == null) selectArea(gx, gy, e.isShiftKeyDown()); - else if (!sim.menus.noEditCheckItem.getState()) { + else if (!ui.isReadOnly()) { // wait short delay before dragging. This is to fix problem where switches were accidentally getting // dragged when tapped on mobile devices if (System.currentTimeMillis()-mouseDownTime < 150) @@ -653,7 +653,7 @@ public class MouseManager implements MouseDownHandler, MouseMoveHandler, MouseUp @SuppressWarnings("deprecation") void doPopupMenu() { - if (sim.menus.noEditCheckItem.getState() || sim.dialogIsShowing()) + if (ui.isReadOnly() || sim.dialogIsShowing()) return; menuElm = mouseElm; sim.scopeManager.menuScope=-1; @@ -775,7 +775,7 @@ public class MouseManager implements MouseDownHandler, MouseMoveHandler, MouseUp public void onDoubleClick(DoubleClickEvent e){ e.preventDefault(); // if (!didSwitch && mouseElm != null) - if (mouseElm != null && !(mouseElm instanceof SwitchElm) && !sim.menus.noEditCheckItem.getState()) + if (mouseElm != null && !(mouseElm instanceof SwitchElm) && !ui.isReadOnly()) sim.commands.doEdit(mouseElm); } @@ -838,12 +838,12 @@ public class MouseManager implements MouseDownHandler, MouseMoveHandler, MouseUp tempMouseMode = MODE_DRAG_ALL; - if (sim.menus.noEditCheckItem.getState()) + if (ui.isReadOnly()) tempMouseMode = MODE_SELECT; if (!(sim.dialogIsShowing()) && ((sim.scopeManager.scopeSelected != -1 && sim.scopeManager.scopes[sim.scopeManager.scopeSelected].cursorInSettingsWheel()) || ( sim.scopeManager.scopeSelected == -1 && mouseElm instanceof ScopeElm && ((ScopeElm)mouseElm).elmScope.cursorInSettingsWheel()))){ - if (sim.menus.noEditCheckItem.getState()) + if (ui.isReadOnly()) return; Scope s; if (sim.scopeManager.scopeSelected != -1) @@ -866,7 +866,7 @@ public class MouseManager implements MouseDownHandler, MouseMoveHandler, MouseUp } // IES - Grab resize handles in select mode if they are far enough apart and you are on top of them - if (tempMouseMode == MODE_SELECT && mouseElm!=null && !sim.menus.noEditCheckItem.getState() && + if (tempMouseMode == MODE_SELECT && mouseElm!=null && !ui.isReadOnly() && mouseElm.getHandleGrabbedClose(gx, gy, POSTGRABSQ, MINPOSTGRABSIZE) >=0 && !anySelectedButMouse()) tempMouseMode = MODE_DRAG_POST; @@ -979,7 +979,7 @@ public class MouseManager implements MouseDownHandler, MouseMoveHandler, MouseUp // so we don't accidentally edit a resistor value while zooming boolean zoomOnly = System.currentTimeMillis() < zoomTime+1000; - if (sim.menus.noEditCheckItem.getState() || !sim.menus.mouseWheelEditCheckItem.getState()) + if (ui.isReadOnly() || !sim.menus.mouseWheelEditCheckItem.getState()) zoomOnly = true; if (!zoomOnly) diff --git a/src/com/lushprojects/circuitjs1/client/UIManager.java b/src/com/lushprojects/circuitjs1/client/UIManager.java index c534bd12..c2cbbce0 100644 --- a/src/com/lushprojects/circuitjs1/client/UIManager.java +++ b/src/com/lushprojects/circuitjs1/client/UIManager.java @@ -585,7 +585,7 @@ public class UIManager { g.context.setLineCap(LineCap.ROUND); - if (menus.noEditCheckItem.getState()) + if (isReadOnly()) g.drawLock(20, 30); g.setColor(Color.white); @@ -798,6 +798,10 @@ public class UIManager { } } + boolean isReadOnly() { + return menus.noEditCheckItem.getState() || !subcircuitStack.isEmpty(); + } + void enableItems() { } @@ -942,7 +946,7 @@ public class UIManager { } } - if (menus.noEditCheckItem.getState()) + if (isReadOnly()) return; if ((t & Event.ONKEYDOWN)!=0) {