From b961acd0fd020d5580d6dd0b541ca4e1f9868ecf 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) --- .../docking/vl/VlDockDockingManager.java | 56 +++++++++++-------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/dockingvl/src/main/java/fr/soleil/docking/vl/VlDockDockingManager.java b/dockingvl/src/main/java/fr/soleil/docking/vl/VlDockDockingManager.java index 18e6cbf..215ab47 100644 --- a/dockingvl/src/main/java/fr/soleil/docking/vl/VlDockDockingManager.java +++ b/dockingvl/src/main/java/fr/soleil/docking/vl/VlDockDockingManager.java @@ -16,7 +16,6 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import javax.swing.JComponent; -import javax.swing.JOptionPane; import javax.swing.UIManager; import com.vldocking.swing.docking.DockingDesktop; @@ -83,19 +82,20 @@ public class VlDockDockingManager extends ADockingManager { } @Override - public void loadPerspective(IPerspective perspective) throws DockingException { + public void applyPerspective(IPerspective perspective, JComponent dockingArea) throws DockingException { DockingException dockingException = null; - if (perspective.getByteArray().length > 0) { - + if ((perspective != null) && (perspective.getByteArray().length > 0) + && (dockingArea instanceof SoleilDockingDesktop)) { + SoleilDockingDesktop mainDockingDesktop = (SoleilDockingDesktop) dockingArea; ObjectInputStream ois = null; ByteArrayInputStream bais = null; try { - bais = new ByteArrayInputStream(perspective.getByteArray()); ois = new ObjectInputStream(bais); mainDockingDesktop.readXML(ois); } catch (Exception e) { - dockingException = new DockingException("Perspective.load() :" + " Unexpected Error", e); + dockingException = new DockingException(getClass().getSimpleName() + + ".applyPerspective(): Unexpected Error", e); } finally { try { if (ois != null) { @@ -117,28 +117,36 @@ public class VlDockDockingManager extends ADockingManager { } @Override - protected void savePerspective(IPerspective perspective) { - ByteArrayOutputStream baos = null; - ObjectOutputStream ous = null; - baos = new ByteArrayOutputStream(); - try { - ous = new ObjectOutputStream(baos); - mainDockingDesktop.writeXML(ous); - } catch (IOException e) { - e.printStackTrace(); - JOptionPane.showMessageDialog(mainDockingDesktop, - "Perspective.save() :" + " Unexpected Error (see traces)", "VLDock - Error", - JOptionPane.ERROR_MESSAGE); - } finally { + public void updatePerspective(IPerspective perspective, JComponent dockingArea) throws DockingException { + DockingException dockingException = null; + if ((perspective != null) && (dockingArea instanceof SoleilDockingDesktop)) { + SoleilDockingDesktop mainDockingDesktop = (SoleilDockingDesktop) dockingArea; + ByteArrayOutputStream baos = null; + ObjectOutputStream ous = null; + baos = new ByteArrayOutputStream(); try { - ous.close(); - // Actually there is no effect to close baos ... + ous = new ObjectOutputStream(baos); + mainDockingDesktop.writeXML(ous); + perspective.setByteArray(baos.toByteArray()); } catch (IOException e) { - e.printStackTrace(); + dockingException = new DockingException(getClass().getSimpleName() + + ".updatePerspective(): Unexpected Error", e); + } finally { + try { + ous.close(); + // Actually there is no effect to close baos ... + } catch (IOException e) { + if (dockingException == null) { + dockingException = new DockingException("I/O Exception", e); + } else { + e.printStackTrace(); + } + } } } - perspective.setByteArray(baos.toByteArray()); - + if (dockingException != null) { + throw dockingException; + } } @Override -- GitLab