From 1714ddb44430fa88e61c2828699215cd51219054 Mon Sep 17 00:00:00 2001 From: bancika Date: Mon, 29 Apr 2013 10:08:26 +0000 Subject: [PATCH] apply template to existing components do not mess up selection on right click popup menu improvements --- .../diylc-swing/lib/diylc-core.jar | Bin 210640 -> 211066 bytes .../diylc-swing/library/main.jar | Bin 279731 -> 283073 bytes .../src/org/diylc/images/IconLoader.java | 5 +- .../src/org/diylc/images/briefcase_into.png | Bin 0 -> 951 bytes .../src/org/diylc/swing/ActionFactory.java | 43 ++++-- .../swing/plugins/canvas/CanvasPlugin.java | 134 +++++++++++++----- .../swing/plugins/edit/EditMenuPlugin.java | 9 +- .../diylc-swing/update.xml | 12 ++ 8 files changed, 145 insertions(+), 58 deletions(-) create mode 100644 diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/briefcase_into.png diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/lib/diylc-core.jar index 9d5585e095f895831de89328c4ba22b713625af9..ccf7a42b113d336beda7888a968165c14427fc9f 100644 GIT binary patch delta 28228 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 v55giQVYcKXQ+4bT6aw`$eq7AHf02 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 delta 27719 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 bF0z62c+vjvBd7N&yh9t(*jBd*6si6X10-R< diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/library/main.jar index 7eafb229d6c5851dcc62745512b3389659f2dca7..4a95af99c48b540f564c3890f7d67604548aaf96 100644 GIT binary patch delta 16832 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 Kf*DwZ(f%LAxzW@B delta 13469 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 diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java index 5c6c6845..15adbee6 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java @@ -37,8 +37,9 @@ public enum IconLoader { "document_edit.png"), EditComponent("edit_component.png"), Size( "size.png"), Front("front.png"), Back("back.png"), Pens("pens.png"), Sort( "sort.png"), ElementsSelection("elements_selection.png"), BranchAdd( - "branch_add.png"), Briefcase_Add("briefcase_add.png"), RotateCW( - "rotate_cw.png"), RotateCCW("rotate_ccw.png"), ElementInto("element_into.png"); + "branch_add.png"), BriefcaseAdd("briefcase_add.png"), BriefcaseInto( + "briefcase_into.png"), RotateCW("rotate_cw.png"), RotateCCW( + "rotate_ccw.png"), ElementInto("element_into.png"); protected String name; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/briefcase_into.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/briefcase_into.png new file mode 100644 index 0000000000000000000000000000000000000000..f01a999da71336097306395a1d25226bf8ab662e GIT binary patch literal 951 zcmV;o14#UdP)WdKBPATcx`PH%P~GB7YQATc>QH8MIeIUp-AF)%Rb+d)wP000McNliru z)&&<0F(~$}iQfPK010qNS#tmY3h)2`3h)6!tTdPa000DMK}|sb0I`n?{9y$E00R$6 zL_t(|+Fg@hNK;W9$G^L~yW5;@I(3?v(ln?|EG?oHluy1ENl!~8Ffbx33hK#+qTVVZ zgkGbJ{tyug!CFZ8kfMY}Xq&c)OWCF~-FC0r-Q8}#v#t=H%jX{MIp=%s?{|LRqr;BY z)6-L#&*wi7o?I>`DT*>H%ksyywY3q0!4ONQ(}|gxnG7ve8M=;+4z8u8<$NlYY9fJ) z=lRZ>ni}i+`Z~(X%Vn$8YDgp!I+{a8MFm7rl;-Bgqx;7zF(dUauFKOh(9NvxvoFh(sc2Zf=Gk2qh~kD_2Q8PkiMm)O|*y5lu}^7#SHs zLqh}1W;4de$3fv2(^6Fx6h4-gmWn;i*V6DIVwN+ROb403;c#GMV*`{UoK9y^#KNZh zi#>xy!@l);y_v+7guu0X+K;;3ZqP<-0xp*ez4N`OZmuehF%hLw>=}|IfulxZ1EJ?$ zMP8j4lgFUiRd`N$AkibLBKkvDP`1|w!E8rT;vi)x0{LG=TGO!?-`(0R+?u_KVf8I^ z1=`lAM`OJWXHFi)wV{5zK5`jV(T{jH(Ta4zj%-E*RV<~I5xf#pl(UWJ@ZIqR?)`gU zFDXN{r3|&DR$TXX;?mov2%Nrwhi^V3C&& zml+I?O<{E_g~u;_cz&P@-`+of#aazpnH4shjhz9@pP8w^Q(Y^=p)dwo2apgG@Gtr? z_-hbPRz`8haUZ@AKxX5&4}znUHHJbV78ZivgE&@t47`EI-Cg$} zhSHF!d=`U3_kZC-NW1v1bkSvR<_u&_h|g`6sCf(Wrp z#F>!Y1BOnkr-|6D+0(^R(-tmjqD_KrBoSE_`gR$0|J`JEFjm5*jk8luYoffiM%{V+ Z{{kIpewGp-LQMbw002ovPDHLkV1oIeq-FpB literal 0 HcmV?d00001 diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java index c178564f..b5198ce8 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/ActionFactory.java @@ -22,6 +22,7 @@ import org.diylc.common.PropertyWrapper; import org.diylc.core.ExpansionMode; import org.diylc.core.IDIYComponent; import org.diylc.core.IView; +import org.diylc.core.Template; import org.diylc.core.Theme; import org.diylc.images.IconLoader; import org.diylc.presenter.Presenter; @@ -60,8 +61,9 @@ public class ActionFactory { public OpenAction createOpenAction(IPlugInPort plugInPort, ISwingUI swingUI) { return new OpenAction(plugInPort, swingUI); } - - public ImportAction createImportAction(IPlugInPort plugInPort, ISwingUI swingUI) { + + public ImportAction createImportAction(IPlugInPort plugInPort, + ISwingUI swingUI) { return new ImportAction(plugInPort, swingUI); } @@ -270,7 +272,7 @@ public class ActionFactory { } } } - + public static class ImportAction extends AbstractAction { private static final long serialVersionUID = 1L; @@ -286,31 +288,35 @@ public class ActionFactory { this.presenter = new Presenter(new IView() { @Override - public int showConfirmDialog(String message, String title, int optionType, - int messageType) { + public int showConfirmDialog(String message, String title, + int optionType, int messageType) { return JOptionPane.showConfirmDialog(null, message, title, optionType, messageType); } @Override - public void showMessage(String message, String title, int messageType) { - JOptionPane.showMessageDialog(null, message, title, messageType); + public void showMessage(String message, String title, + int messageType) { + JOptionPane.showMessageDialog(null, message, title, + messageType); } - + @Override public File promptFileSave() { return null; } - + @Override - public boolean editProperties(List properties, Set defaultedProperties) { + public boolean editProperties(List properties, + Set defaultedProperties) { return false; } }); putValue(AbstractAction.NAME, "Import"); putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( KeyEvent.VK_I, ActionEvent.CTRL_MASK)); - putValue(AbstractAction.SMALL_ICON, IconLoader.ElementInto.getIcon()); + putValue(AbstractAction.SMALL_ICON, IconLoader.ElementInto + .getIcon()); } @Override @@ -328,9 +334,12 @@ public class ActionFactory { LOG.debug("Opening from " + file.getAbsolutePath()); // Load project in temp presenter presenter.loadProjectFromFile(file.getAbsolutePath()); - // Grab all components and paste them into the main presenter - plugInPort.pasteComponents(presenter.getCurrentProject().getComponents()); - // Cleanup components in the temp presenter, don't need them anymore + // Grab all components and paste them into the main + // presenter + plugInPort.pasteComponents(presenter + .getCurrentProject().getComponents()); + // Cleanup components in the temp presenter, don't need + // them anymore presenter.selectAll(); presenter.deleteSelectedComponents(); return null; @@ -911,7 +920,7 @@ public class ActionFactory { super(); this.plugInPort = plugInPort; putValue(AbstractAction.NAME, "Save as Template"); - putValue(AbstractAction.SMALL_ICON, IconLoader.Briefcase_Add + putValue(AbstractAction.SMALL_ICON, IconLoader.BriefcaseAdd .getIcon()); } @@ -1006,6 +1015,8 @@ public class ActionFactory { this.plugInPort = plugInPort; putValue(AbstractAction.NAME, "Send Backward"); putValue(AbstractAction.SMALL_ICON, IconLoader.Back.getIcon()); + putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( + KeyEvent.VK_DOWN, ActionEvent.ALT_MASK)); } @Override @@ -1026,6 +1037,8 @@ public class ActionFactory { this.plugInPort = plugInPort; putValue(AbstractAction.NAME, "Bring Forward"); putValue(AbstractAction.SMALL_ICON, IconLoader.Front.getIcon()); + putValue(AbstractAction.ACCELERATOR_KEY, KeyStroke.getKeyStroke( + KeyEvent.VK_UP, ActionEvent.ALT_MASK)); } @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java index fd618ae4..215a533d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/canvas/CanvasPlugin.java @@ -23,6 +23,7 @@ import javax.swing.JMenu; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import javax.swing.SwingConstants; +import javax.swing.SwingUtilities; import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; @@ -33,6 +34,7 @@ import org.diylc.common.IPlugIn; import org.diylc.common.IPlugInPort; import org.diylc.core.ExpansionMode; import org.diylc.core.IDIYComponent; +import org.diylc.core.Template; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.images.IconLoader; @@ -53,6 +55,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { private JPopupMenu popupMenu; private JMenu selectionMenu; private JMenu expandMenu; + private JMenu applyTemplateMenu; private ActionFactory.CutAction cutAction; private ActionFactory.CopyAction copyAction; @@ -104,37 +107,52 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } @Override - public void mouseReleased(MouseEvent e) { - if (plugInPort.getNewComponentTypeSlot() == null - && e.isPopupTrigger()) { - // Enable actions. - boolean enabled = !plugInPort.getSelectedComponents() - .isEmpty(); - getCutAction().setEnabled(enabled); - getCopyAction().setEnabled(enabled); - try { - getPasteAction() - .setEnabled( - clipboard - .isDataFlavorAvailable(ComponentTransferable.listFlavor)); - } catch (Exception ex) { - getPasteAction().setEnabled(false); + public void mouseReleased(final MouseEvent e) { + plugInPort.mouseClicked(e.getPoint(), e.getButton(), e + .isControlDown(), e.isShiftDown(), e.isAltDown(), e + .getClickCount()); + // Invoke the rest of the code later so we get the chance to + // process selection messages. + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + if (plugInPort.getNewComponentTypeSlot() == null + && e.isPopupTrigger()) { + // Enable actions. + boolean enabled = !plugInPort + .getSelectedComponents().isEmpty(); + getCutAction().setEnabled(enabled); + getCopyAction().setEnabled(enabled); + try { + getPasteAction() + .setEnabled( + clipboard + .isDataFlavorAvailable(ComponentTransferable.listFlavor)); + } catch (Exception ex) { + getPasteAction().setEnabled(false); + } + getEditSelectionAction().setEnabled(enabled); + getDeleteSelectionAction().setEnabled(enabled); + getExpandSelectionAllAction().setEnabled( + enabled); + getExpandSelectionImmediateAction().setEnabled( + enabled); + getExpandSelectionSameTypeAction().setEnabled( + enabled); + getGroupAction().setEnabled(enabled); + getUngroupAction().setEnabled(enabled); + getSendToBackAction().setEnabled(enabled); + getBringToFrontAction().setEnabled(enabled); + + getSaveAsTemplateAction().setEnabled( + plugInPort.getSelectedComponents() + .size() == 1); + + showPopupAt(e.getX(), e.getY()); + } } - getEditSelectionAction().setEnabled(enabled); - getDeleteSelectionAction().setEnabled(enabled); - getExpandSelectionAllAction().setEnabled(enabled); - getExpandSelectionImmediateAction().setEnabled(enabled); - getExpandSelectionSameTypeAction().setEnabled(enabled); - getGroupAction().setEnabled(enabled); - getUngroupAction().setEnabled(enabled); - getSendToBackAction().setEnabled(enabled); - getBringToFrontAction().setEnabled(enabled); - - getSaveAsTemplateAction().setEnabled( - plugInPort.getSelectedComponents().size() == 1); - - showPopupAt(e.getX(), e.getY()); - } + }); } }); @@ -158,14 +176,12 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { .isShiftDown(), e.isAltDown()); } }); - + canvasPanel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - plugInPort.mouseClicked(e.getPoint(), e.getButton(), e - .isControlDown(), e.isShiftDown(), e.isAltDown(), e - .getClickCount()); + } }); } @@ -234,6 +250,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { private void showPopupAt(int x, int y) { updateSelectionMenu(x, y); + updateApplyTemplateMenu(); getPopupMenu().show(canvasPanel, x, y); } @@ -255,6 +272,7 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { popupMenu.add(getSendToBackAction()); popupMenu.add(getBringToFrontAction()); popupMenu.add(getSaveAsTemplateAction()); + popupMenu.add(getApplyTemplateMenu()); popupMenu.add(getExpandMenu()); popupMenu.addSeparator(); popupMenu.add(ActionFactory.getInstance().createEditProjectAction( @@ -282,6 +300,14 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { return expandMenu; } + public JMenu getApplyTemplateMenu() { + if (applyTemplateMenu == null) { + applyTemplateMenu = new JMenu("Apply Template"); + applyTemplateMenu.setIcon(IconLoader.BriefcaseInto.getIcon()); + } + return applyTemplateMenu; + } + private void updateSelectionMenu(int x, int y) { getSelectionMenu().removeAll(); for (IDIYComponent component : plugInPort @@ -302,6 +328,36 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner { } } + private void updateApplyTemplateMenu() { + getApplyTemplateMenu().removeAll(); + List