Author: Christian Lopes
Date: 2011-05-31 14:20:37 -0700 (Tue, 31 May 2011)
New Revision: 25605
Modified:
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoscapeDesktop.java
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
Log:
Setting desktop size and network frames size/position to Cysession when
SessionAboutToBeSaved event is triggered.
Modified:
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoscapeDesktop.java
===================================================================
---
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoscapeDesktop.java
2011-05-31 21:08:13 UTC (rev 25604)
+++
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/CytoscapeDesktop.java
2011-05-31 21:20:37 UTC (rev 25605)
@@ -38,7 +38,11 @@
import org.cytoscape.application.swing.CytoscapeShutdown;
import org.cytoscape.application.swing.events.CytoPanelStateChangedListener;
import org.cytoscape.event.CyEventHelper;
+import org.cytoscape.property.session.Desktop;
+import org.cytoscape.property.session.DesktopSize;
import org.cytoscape.service.util.CyServiceRegistrar;
+import org.cytoscape.session.events.SessionAboutToBeSavedEvent;
+import org.cytoscape.session.events.SessionAboutToBeSavedListener;
import java.awt.BorderLayout;
import java.awt.Component;
@@ -56,6 +60,8 @@
import javax.swing.JSplitPane;
import javax.swing.JTabbedPane;
import javax.swing.WindowConstants;
+
+import java.math.BigInteger;
import java.util.Dictionary;
import java.util.Properties;
import org.cytoscape.work.swing.GUITaskManager;
@@ -67,7 +73,8 @@
/**
* The CytoscapeDesktop is the central Window for working with Cytoscape
*/
-public class CytoscapeDesktop extends JFrame implements CySwingApplication,
CytoscapeStartListener {
+public class CytoscapeDesktop extends JFrame implements CySwingApplication,
CytoscapeStartListener,
+
SessionAboutToBeSavedListener {
private final static long serialVersionUID = 1202339866271348L;
@@ -383,8 +390,29 @@
}
// handle CytoscapeStartEvent
- public void handleEvent(CytoscapeStartEvent e){
+ @Override
+ public void handleEvent(CytoscapeStartEvent e) {
this.setVisible(true);
this.toFront();
}
+
+ @Override
+ public void handleEvent(SessionAboutToBeSavedEvent e) {
+ // Just save the desktop size
+ BigInteger w = BigInteger.valueOf(this.getWidth());
+ BigInteger h = BigInteger.valueOf(this.getHeight());
+
+ DesktopSize size = new DesktopSize();
+ size.setWidth(w);
+ size.setHeight(h);
+
+ Desktop desktop = e.getDesktop();
+
+ if (desktop == null) {
+ desktop = new Desktop();
+ e.setDesktop(desktop);
+ }
+
+ desktop.setDesktopSize(size);
+ }
}
Modified:
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
===================================================================
---
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
2011-05-31 21:08:13 UTC (rev 25604)
+++
core3/swing-application-impl/trunk/src/main/java/org/cytoscape/internal/view/NetworkViewManager.java
2011-05-31 21:20:37 UTC (rev 25605)
@@ -39,6 +39,7 @@
import java.awt.Component;
import java.awt.Dimension;
import java.beans.PropertyVetoException;
+import java.math.BigInteger;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -57,9 +58,13 @@
import org.cytoscape.model.events.RowSetMicroListener;
import org.cytoscape.property.CyProperty;
import org.cytoscape.property.session.Cysession;
+import org.cytoscape.property.session.Desktop;
import org.cytoscape.property.session.NetworkFrame;
+import org.cytoscape.property.session.NetworkFrames;
import org.cytoscape.session.CyApplicationManager;
import org.cytoscape.session.CySession;
+import org.cytoscape.session.events.SessionAboutToBeSavedEvent;
+import org.cytoscape.session.events.SessionAboutToBeSavedListener;
import org.cytoscape.session.events.SessionLoadedEvent;
import org.cytoscape.session.events.SessionLoadedListener;
import org.cytoscape.session.events.SetCurrentNetworkEvent;
@@ -87,7 +92,7 @@
*/
public class NetworkViewManager extends InternalFrameAdapter implements
NetworkViewAddedListener,
NetworkViewAboutToBeDestroyedListener,
SetCurrentNetworkViewListener, SetCurrentNetworkListener,
- SessionLoadedListener {
+ SessionLoadedListener, SessionAboutToBeSavedListener {
private static final Logger logger =
LoggerFactory.getLogger(NetworkViewManager.class);
@@ -485,6 +490,34 @@
}
}
+ @Override
+ public void handleEvent(SessionAboutToBeSavedEvent e) {
+ // Save Network Frames
+ Desktop desktop = e.getDesktop();
+
+ if (desktop == null) {
+ desktop = new Desktop();
+ e.setDesktop(desktop);
+ }
+
+ NetworkFrames netFrames = new NetworkFrames();
+ desktop.setNetworkFrames(netFrames);
+
+ JInternalFrame[] internalFrames = desktopPane.getAllFrames();
+
+ for (JInternalFrame iframe : internalFrames) {
+ NetworkFrame nf = new NetworkFrame();
+
+ nf.setFrameID(iframe.getTitle());
+ nf.setHeight(BigInteger.valueOf(iframe.getHeight()));
+ nf.setWidth(BigInteger.valueOf(iframe.getWidth()));
+ nf.setX(BigInteger.valueOf(iframe.getX()));
+ nf.setY(BigInteger.valueOf(iframe.getY()));
+
+ netFrames.getNetworkFrame().add(nf);
+ }
+ }
+
private void updateNetworkTitle(Long networkModelID, String title) {
JInternalFrame frame =
presentationContainerMap.get(networkModelID);
Modified:
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
---
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-05-31 21:08:13 UTC (rev 25604)
+++
core3/swing-application-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-05-31 21:20:37 UTC (rev 25605)
@@ -293,6 +293,7 @@
<osgi:service id="cytoscapeDesktopService" ref="cytoscapeDesktop">
<osgi:interfaces>
<value>org.cytoscape.application.swing.events.CytoscapeStartListener</value>
+
<value>org.cytoscape.session.events.SessionAboutToBeSavedListener</value>
<value>org.cytoscape.application.swing.CySwingApplication</value>
</osgi:interfaces>
</osgi:service>
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.