From 3973d4fc0875b1cc4289e6be1d0fe00bc234f8e0 Mon Sep 17 00:00:00 2001 From: Raphael Girardot <raphael.girardot@synchrotron-soleil.fr> Date: Mon, 17 Feb 2014 10:12:32 +0000 Subject: [PATCH] some methods renamed + added the possibility to interact with any docking area (not necessary the main one) --- .../fr/soleil/docking/ADockingManager.java | 58 ++++++++++++++----- 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java b/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java index 8ac6428..7da9267 100644 --- a/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java +++ b/dockingcore/src/main/java/fr/soleil/docking/ADockingManager.java @@ -16,6 +16,7 @@ import java.util.prefs.Preferences; import javax.swing.Action; import javax.swing.JComponent; +import javax.swing.JOptionPane; import fr.soleil.docking.action.SaveDefaultPerspertiveAction; import fr.soleil.docking.exception.DockingException; @@ -116,21 +117,35 @@ public abstract class ADockingManager implements PropertyChangeListener { public void loadPreferences(Preferences prefs) throws DockingException { this.perspectiveFactory.loadPreferences(prefs); this.viewFactory.loadPreferences(prefs); - this.loadPerspective(perspectiveFactory.getSelectedPerspective()); + this.applyPerspective(perspectiveFactory.getSelectedPerspective()); } public void resetLayout() throws DockingException { - loadPerspective(perspectiveFactory.getDefault()); + applyPerspective(perspectiveFactory.getDefault()); } /** - * @param is + * Applies a perspective to the main docking area + * + * @param perspective The perspective to apply + * @throws DockingException If a problem occurred while trying to apply the perspective + */ + public void applyPerspective(IPerspective perspective) throws DockingException { + applyPerspective(perspective, getDockingArea()); + } + + /** + * Applies a perspective to a docking area + * + * @param perspective The perspective to apply + * @param dockingArea The docking area + * @throws DockingException If a problem occurred while trying to apply the perspective */ - public abstract void loadPerspective(IPerspective perspective) throws DockingException; + public abstract void applyPerspective(IPerspective perspective, JComponent dockingArea) throws DockingException; public void savePreferences(Preferences prefs) throws DockingException { // Save current Perspective - this.savePerspective(this.perspectiveFactory.getSelectedPerspective()); + this.updatePerspective(this.perspectiveFactory.getSelectedPerspective()); // Save Preferences of perspective Factory this.perspectiveFactory.savePreferences(prefs); @@ -141,14 +156,31 @@ public abstract class ADockingManager implements PropertyChangeListener { } /** - * @param perspective - * @param out - * @throws DockingException + * Writes main docking area layout in a perspective + * + * @param perspective The perspective + */ + protected void updatePerspective(IPerspective perspective) { + try { + updatePerspective(perspective, getDockingArea()); + } catch (DockingException e) { + JOptionPane.showMessageDialog(getDockingArea(), e.getMessage() + " (see traces)", getClass() + .getSimpleName() + " Docking - Error", JOptionPane.ERROR_MESSAGE); + e.printStackTrace(); + } + } + + /** + * Writes a docking area layout in a perspective + * + * @param perspective The perspective + * @param dockingArea The docking area + * @throws DockingException If a problem occurred while writing the layout */ - protected abstract void savePerspective(IPerspective perspective) throws DockingException; + public abstract void updatePerspective(IPerspective perspective, JComponent dockingArea) throws DockingException; public void saveDefault(File file) throws DockingException { - this.savePerspective(this.perspectiveFactory.getSelectedPerspective()); + this.updatePerspective(this.perspectiveFactory.getSelectedPerspective()); this.perspectiveFactory.saveSelected(file); } @@ -161,9 +193,9 @@ public abstract class ADockingManager implements PropertyChangeListener { IPerspective neww = (IPerspective) evt.getNewValue(); try { if (automaticallySavePerspective) { - this.savePerspective(oldd); + this.updatePerspective(oldd); } - this.loadPerspective(neww); + this.applyPerspective(neww); } catch (DockingException e) { e.printStackTrace(); } @@ -179,7 +211,7 @@ public abstract class ADockingManager implements PropertyChangeListener { protected abstract void updateViews(PropertyChangeEvent evt); public void saveSelectedPerspective() throws DockingException { - this.savePerspective(this.perspectiveFactory.getSelectedPerspective()); + this.updatePerspective(this.perspectiveFactory.getSelectedPerspective()); } /** -- GitLab