Author: EvaV Date: 2010-02-25 00:33:58 +0100 (Thu, 25 Feb 2010) New Revision: 1861 Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/LayoutDesigner.java trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/MenuBar.java trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPane.java trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPaneCloseTabButton.java trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ReadLayoutFromServer.java trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ServerSideContext.java trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/structures/CloseLayout.java Log: zavirani okna s appletem Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/LayoutDesigner.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/LayoutDesigner.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/LayoutDesigner.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -22,6 +22,7 @@ import com.elvys.applet.dialog.WarningDialog; import com.elvys.applet.propertiesManager.PropertiesManager; import com.elvys.applet.serverCommunication.ServerSideContext; +import com.elvys.applet.structures.CloseLayout; import com.elvys.applet.structures.Layout; import com.elvys.applet.structures.Positions; import com.elvys.applet.structures.ScreenResolution; @@ -208,7 +209,10 @@ closeLayoutDesignerBrowserWindow(); } else { // opens new layout, if it is loaded from server - if (layoutToOpen != null) { + if (ServerSideContext.getInstance().isEdited()) { + if(layoutToOpen == null) { + closeLayoutDesignerBrowserWindow(); + } DesignArea editedLayoutDesignArea; editedLayoutDesignArea = new DesignArea(tabbedPane, layoutToOpen); @@ -286,6 +290,7 @@ tabbedPane = new TabbedPane(properties, allPossibleDocumentTypes, this); tabbedPane.setPreferredSize(componentSizes.getTabbedPane()); + tabbedPane.setApplet(instance); contentPane.add(tabbedPane, BorderLayout.CENTER); propertiesManager = new JTabbedPane(); @@ -307,38 +312,7 @@ } - /** - * Closes browser window with LayoutDesigner - */ - public void closeLayoutDesignerBrowserWindow() { - String jscmd = "window.close()"; - try { - Method getw = null, eval = null; - Object jswin = null; - Class c = Class.forName("netscape.javascript.JSObject"); - Method ms[] = c.getMethods(); - for (int i = 0; i < ms.length; i++) { - if (ms[i].getName().compareTo("getWindow") == 0) { - getw = ms[i]; - } - else if (ms[i].getName().compareTo("eval") == 0) { - eval = ms[i]; - } - } - - Object a[] = new Object[1]; - a[0] = this; - jswin = getw.invoke(c, a); - a[0] = jscmd; - eval.invoke(jswin, a); - - } catch (Exception e) { - - } - - } - /** * Opens new empty layout */ @@ -428,7 +402,73 @@ } + /** + * Closes browser window with LayoutDesigner + */ + public void closeLayoutDesignerBrowserWindow() { + + String jscmd = "window.close()"; + try { + Method getw = null, eval = null; + Object jswin = null; + Class c = Class.forName("netscape.javascript.JSObject"); + Method ms[] = c.getMethods(); + for (int i = 0; i < ms.length; i++) { + if (ms[i].getName().compareTo("getWindow") == 0) { + getw = ms[i]; + } + else if (ms[i].getName().compareTo("eval") == 0) { + eval = ms[i]; + } + } + + Object a[] = new Object[1]; + a[0] = instance; + jswin = getw.invoke(c, a); + a[0] = jscmd; + eval.invoke(jswin, a); + + } catch (Exception e) { + + } + + } + + /** + * Closes browser window with LayoutDesigner + * @param applet java applet + */ + public void closeLayoutDesignerBrowserWindow(Applet applet) { + + String jscmd = "window.close()"; + try { + Method getw = null, eval = null; + Object jswin = null; + Class c = Class.forName("netscape.javascript.JSObject"); + Method ms[] = c.getMethods(); + for (int i = 0; i < ms.length; i++) { + if (ms[i].getName().compareTo("getWindow") == 0) { + getw = ms[i]; + } + else if (ms[i].getName().compareTo("eval") == 0) { + eval = ms[i]; + } + } + + Object a[] = new Object[1]; + a[0] = applet; + jswin = getw.invoke(c, a); + a[0] = jscmd; + eval.invoke(jswin, a); + + } catch (Exception e) { + + } + + } + + /** * Gets categories panel height * @return the categoriesPanelHeight */ Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/MenuBar.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/MenuBar.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/MenuBar.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -10,7 +10,6 @@ import java.util.Properties; import javax.swing.*; - import com.elvys.applet.components.TabbedPane.Tab; import com.elvys.applet.dialog.ResolutionChoiceDialog; import com.elvys.applet.dialog.SaveAsDialog; @@ -28,31 +27,48 @@ */ /** - * @class MenuBar - * Menu bar represent menu in LayoutDesigner application + * @class MenuBar Menu bar represent menu in LayoutDesigner application */ @SuppressWarnings("serial") public class MenuBar extends JMenuBar { // fields - private JMenuBar menuBar; /** parent menu bar where menu is displayed */ - private TabbedPane tabbedPane; /** tabbed pane */ - private Properties properties; /** properties */ - private JRootPane rootPane; /** root pane of the LayoutDesigner */ - private JMenuItem menuItemNew; /** menu item New layout */ - private JMenuItem menuItemSaveOnServer; /** menu item Save */ - private JMenuItem menuItemClose; /** menu item Close */ - private JMenuItem menuItemCloseAll; /** menu item Close all */ - private JMenuItem menuItemChangeResolution; /** menu item Change resolution */ - private JCheckBoxMenuItem menuItemSnapToGrid; /** menu item Snap to grid */ - private JCheckBoxMenuItem menuItemShowGrid; /** menu item Show grid */ + private JMenuBar menuBar; + /** parent menu bar where menu is displayed */ + private TabbedPane tabbedPane; + /** tabbed pane */ + private Properties properties; + /** properties */ + private JRootPane rootPane; + /** root pane of the LayoutDesigner */ + private JMenuItem menuItemNew; + /** menu item New layout */ + private JMenuItem menuItemSaveOnServer; + /** menu item Save */ + private JMenuItem menuItemClose; + /** menu item Close */ + private JMenuItem menuItemCloseAll; + /** menu item Close all */ + private JMenuItem menuItemChangeResolution; + /** menu item Change resolution */ + private JCheckBoxMenuItem menuItemSnapToGrid; + /** menu item Snap to grid */ + private JCheckBoxMenuItem menuItemShowGrid; + /** menu item Show grid */ // constructors /** * Constructor of the class MenuBar - * @param menuBar parent menu bar where menu bar is displayed - * @param properties properties to set - * @param rootPane root pane to set - * @param isOpenedNewLayout flag whatever LayoutDesigner is opened to create new layout or to edit already designed layout + * + * @param menuBar + * parent menu bar where menu bar is displayed + * @param properties + * properties to set + * @param rootPane + * root pane to set + * @param isOpenedNewLayout + * flag whatever LayoutDesigner is opened to create new layout or + * to edit already designed layout + * */ public MenuBar(final JMenuBar menuBar, Properties properties, JRootPane rootPane) { @@ -100,7 +116,7 @@ // adds menu items action listeners menuItemNew.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { - //openNewLayout(); + // openNewLayout(); } }); @@ -159,7 +175,8 @@ /** * Sets default cursor for menuBar * - * @param menu the menuBar menu + * @param menu + * the menuBar menu */ private void setDefaultCursor(final JMenu menu) { @@ -186,7 +203,8 @@ /** * Enables or disables snap to grid for the actual layout * - * @param evt action event + * @param evt + * action event */ private void enableSnapToGrid(ActionEvent evt) { @@ -200,18 +218,20 @@ if (menuItemSnapToGrid.isSelected()) { actualDesignArea.setSnapToGridEnabled(true); actualDesignArea.getMyLayout().setSnappedToGrid(true); - actualDesignArea.getActionMemory().addActionToActionsMemory(tabbedPane.getActualDesignArea()); + actualDesignArea.getActionMemory().addActionToActionsMemory( + tabbedPane.getActualDesignArea()); } else { actualDesignArea.setSnapToGridEnabled(false); actualDesignArea.getMyLayout().setSnappedToGrid(false); } - + } /** * Enables or disables showing of grid for the actual layout * - * @param evt action event + * @param evt + * action event */ private void enableShowGrid(ActionEvent evt) { @@ -225,7 +245,8 @@ actualDesignArea.setShowGridEnabled(false); actualDesignArea.repaint(); } - actualDesignArea.getActionMemory().addActionToActionsMemory(tabbedPane.getActualDesignArea()); + actualDesignArea.getActionMemory().addActionToActionsMemory( + tabbedPane.getActualDesignArea()); } /** @@ -236,9 +257,12 @@ // shows new resolution choice dialog and sets new resolution ResolutionChoiceDialog resolutionChoiceDialog = new ResolutionChoiceDialog( - new JFrame(), properties, tabbedPane.getSupportedResolutions(), rootPane); + new JFrame(), properties, tabbedPane.getSupportedResolutions(), + rootPane); ScreenResolution newResolution = resolutionChoiceDialog - .showResolutionChoiceDialog(tabbedPane.getLayoutDesigner().getTabPanelSizeWidth(), tabbedPane.getLayoutDesigner().getCategoriesPanelHeight()); + .showResolutionChoiceDialog(tabbedPane.getLayoutDesigner() + .getTabPanelSizeWidth(), tabbedPane.getLayoutDesigner() + .getCategoriesPanelHeight()); if (newResolution == null) { return; @@ -261,26 +285,28 @@ actualDesignArea.setSize(actualDesignArea.getWidth(), actualDesignArea .getHeight()); - + Tab tab = tabbedPane.getActualTab(); - - int leftWidth = actualDesignArea.getMonitorX(tabbedPane.getLayoutDesigner().getTabPanelSizeWidth()); - int bottomHeight = actualDesignArea.getMonitorY(tabbedPane.getLayoutDesigner().getCategoriesPanelHeight()); - + int leftWidth = actualDesignArea.getMonitorX(tabbedPane + .getLayoutDesigner().getTabPanelSizeWidth()); + int bottomHeight = actualDesignArea.getMonitorY(tabbedPane + .getLayoutDesigner().getCategoriesPanelHeight()); + tab.getLeftTabPanel().setSize(leftWidth, actualDesignArea.getHeight()); - - tab.getBottomCatPanel().setLocation(leftWidth, actualDesignArea.getHeight()); - tab.getBottomCatPanel().setSize(actualDesignArea.getWidth(), bottomHeight); + + tab.getBottomCatPanel().setLocation(leftWidth, + actualDesignArea.getHeight()); + tab.getBottomCatPanel().setSize(actualDesignArea.getWidth(), + bottomHeight); tab.getDesignArea().setLocation(leftWidth, 0); - tab.getDesignArea().setSize(actualDesignArea.getWidth(), actualDesignArea.getHeight()); - + tab.getDesignArea().setSize(actualDesignArea.getWidth(), + actualDesignArea.getHeight()); + actualDesignArea.paintAllPositions(); } - - /** * Saves actual layout on server */ @@ -290,11 +316,10 @@ return; } - String layoutName = properties - .getProperty("dialog.defaultName"); + String layoutName = properties.getProperty("dialog.defaultName"); Layout layout = tabbedPane.getActualDesignArea().getMyLayout(); - - if(!layout.isNew()) { + + if (!layout.isNew()) { layoutName = layout.getName(); } @@ -307,8 +332,8 @@ SaveLayoutOnServer saveLayoutOnServer = new SaveLayoutOnServer( tabbedPane); - String oldLayoutName = tabbedPane.getActualDesignArea() - .getMyLayout().getName(); + String oldLayoutName = tabbedPane.getActualDesignArea().getMyLayout() + .getName(); saveLayoutOnServer.saveLayout(oldLayoutName, newLayoutName); } @@ -318,14 +343,19 @@ private void closeActualTab() { CloseLayout closeDesignArea = new CloseLayout(tabbedPane, properties); - closeDesignArea.closeActualLayout(tabbedPane.getActualTab(), - rootPane); - Layout layout = ServerSideContext.getInstance().getLayout(); - if (layout != null) { - try { - ServerSideContext.getInstance().unlockLayout(); - } catch (Exception e) { - e.printStackTrace(); + boolean isClosed = closeDesignArea.closeActualLayout(tabbedPane + .getActualTab(), rootPane); + + if (isClosed) { + + LayoutDesigner.getInstance().closeLayoutDesignerBrowserWindow(tabbedPane.getApplet()); + Layout layout = ServerSideContext.getInstance().getLayout(); + if (layout != null) { + try { + ServerSideContext.getInstance().unlockLayout(); + } catch (Exception e) { + e.printStackTrace(); + } } } @@ -353,7 +383,7 @@ menuItemClose.setEnabled(false); menuItemCloseAll.setEnabled(false); menuItemChangeResolution.setEnabled(false); - + menuItemShowGrid.setSelected(false); menuItemShowGrid.setEnabled(false); @@ -368,13 +398,15 @@ menuItemClose.setEnabled(true); menuItemCloseAll.setEnabled(true); menuItemChangeResolution.setEnabled(true); - - menuItemShowGrid.setSelected(designArea.getMyLayout().isShowGridEnabled()); + + menuItemShowGrid.setSelected(designArea.getMyLayout() + .isShowGridEnabled()); menuItemShowGrid.setEnabled(true); - menuItemSnapToGrid.setSelected(designArea.getMyLayout().isSnappedToGrid()); + menuItemSnapToGrid.setSelected(designArea.getMyLayout() + .isSnappedToGrid()); menuItemSnapToGrid.setEnabled(true); - + designArea.repaint(); } @@ -383,6 +415,7 @@ // getters & setters /** * Setter of the field tabbedPane + * * @param tabbedPane * the tabbedPane to set */ @@ -390,5 +423,4 @@ this.tabbedPane = tabbedPane; } - } Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPane.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPane.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPane.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -4,6 +4,7 @@ * TabbedPane.java * @author Eva Viktorinova */ +import java.applet.Applet; import java.awt.Color; import java.awt.Cursor; import java.awt.Graphics; @@ -37,7 +38,8 @@ private JRootPane rootPane; /** root pane of the LayoutDesigner */ private ComponentSizes componentSizes; /** size of components */ private SupportedResolutions supportedResolutions; /** supported resolutions */ - private LayoutDesigner layoutDesigner; /** layout designer */ + private LayoutDesigner layoutDesigner; /** layout designer */ + private Applet applet; /** java applet */ /** * Represents tab in main tabbed pane @@ -474,4 +476,20 @@ return layoutDesigner; } + /** + * Gets java applet + * @param applet the applet to set + */ + public void setApplet(Applet applet) { + this.applet = applet; + } + + /** + * Sets java applet + * @return the applet + */ + public Applet getApplet() { + return applet; + } + } Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPaneCloseTabButton.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPaneCloseTabButton.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/components/TabbedPaneCloseTabButton.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -101,8 +101,12 @@ CloseLayout closeDesignArea = new CloseLayout(tabbedPane, tabbedPane .getProperties()); - closeDesignArea.closeActualLayout(tabbedPane.getActualTab(), tabbedPane.getRootPane()); - Layout layout = ServerSideContext.getInstance().getLayout(); + boolean isClosed = closeDesignArea.closeActualLayout(tabbedPane.getActualTab(), tabbedPane.getRootPane()); + + if(isClosed) { + + LayoutDesigner.getInstance().closeLayoutDesignerBrowserWindow(tabbedPane.getApplet()); + Layout layout = ServerSideContext.getInstance().getLayout(); if (layout != null) { try { ServerSideContext.getInstance().unlockLayout(); @@ -110,6 +114,7 @@ ex.printStackTrace(); } } + } } Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ReadLayoutFromServer.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ReadLayoutFromServer.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ReadLayoutFromServer.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -8,12 +8,10 @@ import javax.swing.JFrame; import javax.xml.parsers.*; import org.w3c.dom.*; - - -import com.elvys.applet.components.LayoutDesigner; import com.elvys.applet.components.TabbedPane; import com.elvys.applet.dialog.ResolutionChoiceDialog; import com.elvys.applet.dialog.WarningDialog; +import com.elvys.applet.structures.CloseLayout; import com.elvys.applet.structures.Layout; import com.elvys.applet.structures.PermittedDocumentTypes; import com.elvys.applet.structures.Position; @@ -131,12 +129,14 @@ new JFrame(), tabbedPane.getProperties(), resolutions, tabbedPane.getRootPane()); - if(resolutions == null) { - LayoutDesigner.getInstance().closeLayoutDesignerBrowserWindow(); - } + screenResolution = resolutionChoiceDialog .showResolutionChoiceDialog(tabbedPane.getLayoutDesigner().getTabPanelSizeWidth(), tabbedPane.getLayoutDesigner().getCategoriesPanelHeight()); + + if(screenResolution == null) { + return null; + } layout.setScreenResolution(screenResolution); } Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ServerSideContext.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ServerSideContext.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/serverCommunication/ServerSideContext.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -34,6 +34,7 @@ private boolean isLockedByMe; /** flag whatever this layout is locked during saving */ private String lockedUser; /** name of user who has locked this layout */ private String localization; /** suffix of properties file with localization */ + private boolean isEdited; /** layout is opened to edit */ // singleton variable private static ServerSideContext instance; /** instance of this class */ @@ -172,9 +173,11 @@ if(!isLocked) { instance.layout = instance.getLayoutToEdit(tabbedPane); + instance.isEdited = true; } else { instance.layout = null; + instance.isEdited = false; } } catch (Exception e) { @@ -708,4 +711,20 @@ return LOCALIZATION; } + /** + * Sets whatever layout is opened to edit + * @param isEdited the isEdited to set + */ + public void setEdited(boolean isEdited) { + this.isEdited = isEdited; + } + + /** + * Gets whatever layout is opened to edit + * @return the isEdited + */ + public boolean isEdited() { + return isEdited; + } + } Modified: trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/structures/CloseLayout.java =================================================================== --- trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/structures/CloseLayout.java 2010-02-24 21:26:28 UTC (rev 1860) +++ trunk/layouteditor/LayoutDesigner/src/com/elvys/applet/structures/CloseLayout.java 2010-02-24 23:33:58 UTC (rev 1861) @@ -1,5 +1,6 @@ package com.elvys.applet.structures; +import java.lang.reflect.Method; import java.util.Properties; import javax.swing.JRootPane;