Author: kono
Date: 2012-02-28 13:31:35 -0800 (Tue, 28 Feb 2012)
New Revision: 28386
Added:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedEvent.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedListener.java
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CyActivator.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTask.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTaskFactory.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/action/CustomGraphicsManagerAction.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsBrowser.java
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphics/CustomGraphicsRange.java
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
Log:
refs #700 Session loading and saving had been fixed to use binary streams.
CustomGraphics session saving mechanism had been fixed. Still needs to parser
method.
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CustomGraphicsManagerImpl.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -1,6 +1,8 @@
package org.cytoscape.ding.customgraphicsmgr.internal;
+import java.awt.image.BufferedImage;
import java.io.File;
+import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -12,21 +14,27 @@
import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
+import javax.imageio.ImageIO;
+
import org.cytoscape.application.CyApplicationConfiguration;
import org.cytoscape.application.events.CyShutdownEvent;
import org.cytoscape.application.events.CyShutdownListener;
import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
import org.cytoscape.ding.customgraphics.CyCustomGraphics;
import org.cytoscape.ding.customgraphics.NullCustomGraphics;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.property.CyProperty;
+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.work.swing.DialogTaskManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class CustomGraphicsManagerImpl implements CustomGraphicsManager,
CyShutdownListener,
- SessionAboutToBeSavedListener {
+ SessionAboutToBeSavedListener, SessionLoadedListener {
private static final Logger logger =
LoggerFactory.getLogger(CustomGraphicsManagerImpl.class);
@@ -45,15 +53,18 @@
private final File imageHomeDirectory;
protected final Map<CyCustomGraphics, Boolean> isUsedCustomGraphics;
private final DialogTaskManager taskManager;
+
+ private final CyEventHelper eventHelper;
/**
* Creates an image pool object and restore existing images from user
* resource directory.
*/
public CustomGraphicsManagerImpl(final CyProperty<Properties>
properties, final DialogTaskManager taskManager,
- final CyApplicationConfiguration config) {
+ final CyApplicationConfiguration config, final
CyEventHelper eventHelper) {
this.taskManager = taskManager;
+ this.eventHelper = eventHelper;
this.isUsedCustomGraphics = new HashMap<CyCustomGraphics,
Boolean>();
if (properties == null)
@@ -71,7 +82,7 @@
graphicsMap.put(NULL.getIdentifier(), NULL);
this.isUsedCustomGraphics.put(NULL, false);
- final RestoreImageTaskFactory taskFactory = new
RestoreImageTaskFactory(imageHomeDirectory, this);
+ final RestoreImageTaskFactory taskFactory = new
RestoreImageTaskFactory(imageHomeDirectory, this, eventHelper);
taskManager.execute(taskFactory);
}
@@ -258,4 +269,26 @@
logger.error("Error adding " + SESSION_IMAGE_DIR_NAME +
" file to be saved in the session.", ex);
}
}
+
+ @Override
+ public void handleEvent(SessionLoadedEvent e) {
+ // Add new images
+ final CySession sess = e.getLoadedSession();
+
+ if (sess != null) {
+ final Map<String, List<File>> filesMap =
sess.getAppFileListMap();
+
+ if (filesMap != null) {
+ final List<File> files = filesMap.get(APP_NAME);
+ // TODO: 2.x compatibility
+
+ if (files != null && files.size() != 0) {
+ // get parent directory
+ final File parent =
files.get(0).getParentFile();
+ final RestoreImageTaskFactory
taskFactory = new RestoreImageTaskFactory(parent, this, eventHelper);
+ taskManager.execute(taskFactory);
+ }
+ }
+ }
+ }
}
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CyActivator.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CyActivator.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/CyActivator.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -1,7 +1,3 @@
-
-
-
-
package org.cytoscape.ding.customgraphicsmgr.internal;
import org.cytoscape.property.CyProperty;
@@ -11,10 +7,11 @@
import org.cytoscape.ding.customgraphicsmgr.internal.CustomGraphicsManagerImpl;
import
org.cytoscape.ding.customgraphicsmgr.internal.action.CustomGraphicsManagerAction;
+import org.cytoscape.ding.customgraphicsmgr.internal.ui.CustomGraphicsBrowser;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.application.swing.CyAction;
-
import org.osgi.framework.BundleContext;
import org.cytoscape.service.util.AbstractCyActivator;
@@ -28,16 +25,22 @@
public void start(BundleContext bc) {
- DialogTaskManager dialogTaskManagerServiceRef =
getService(bc,DialogTaskManager.class);
- CyProperty coreCyPropertyServiceRef =
getService(bc,CyProperty.class,"(cyPropertyName=cytoscape3.props)");
- CyApplicationManager cyApplicationManagerServiceRef =
getService(bc,CyApplicationManager.class);
- CyApplicationConfiguration cyApplicationConfigurationServiceRef
= getService(bc,CyApplicationConfiguration.class);
-
- CustomGraphicsManagerImpl customGraphicsManager = new
CustomGraphicsManagerImpl(coreCyPropertyServiceRef,dialogTaskManagerServiceRef,cyApplicationConfigurationServiceRef);
- CustomGraphicsManagerAction customGraphicsManagerAction = new
CustomGraphicsManagerAction(customGraphicsManager,cyApplicationManagerServiceRef);
-
- registerAllServices(bc,customGraphicsManager, new Properties());
- registerService(bc,customGraphicsManagerAction,CyAction.class,
new Properties());
+ DialogTaskManager dialogTaskManagerServiceRef = getService(bc,
DialogTaskManager.class);
+ CyProperty coreCyPropertyServiceRef = getService(bc,
CyProperty.class, "(cyPropertyName=cytoscape3.props)");
+ CyApplicationManager cyApplicationManagerServiceRef =
getService(bc, CyApplicationManager.class);
+ CyApplicationConfiguration cyApplicationConfigurationServiceRef
= getService(bc,
+ CyApplicationConfiguration.class);
+ CyEventHelper eventHelperServiceRef = getService(bc,
CyEventHelper.class);
+
+ CustomGraphicsManagerImpl customGraphicsManager = new
CustomGraphicsManagerImpl(coreCyPropertyServiceRef,
+ dialogTaskManagerServiceRef,
cyApplicationConfigurationServiceRef, eventHelperServiceRef);
+ CustomGraphicsBrowser browser = new
CustomGraphicsBrowser(customGraphicsManager);
+ registerAllServices(bc, browser, new Properties());
+
+ CustomGraphicsManagerAction customGraphicsManagerAction = new
CustomGraphicsManagerAction(
+ customGraphicsManager,
cyApplicationManagerServiceRef, browser);
+
+ registerAllServices(bc, customGraphicsManager, new
Properties());
+ registerService(bc, customGraphicsManagerAction,
CyAction.class, new Properties());
}
}
-
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTask.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTask.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTask.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -28,45 +28,45 @@
import org.cytoscape.ding.customgraphics.bitmap.URLImageCustomGraphics;
import org.cytoscape.ding.customgraphics.vector.GradientOvalLayer;
import org.cytoscape.ding.customgraphics.vector.GradientRoundRectangleLayer;
-import org.cytoscape.property.CyProperty;
+import
org.cytoscape.ding.customgraphicsmgr.internal.event.CustomGraphicsLibraryUpdatedEvent;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.work.Task;
import org.cytoscape.work.TaskMonitor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RestoreImageTask implements Task {
-
+
private static final Logger logger =
LoggerFactory.getLogger(RestoreImageTask.class);
private final CustomGraphicsManagerImpl manager;
-
+
private final ExecutorService imageLoaderService;
-
+
private static final int TIMEOUT = 1000;
private static final int NUM_THREADS = 8;
-
+
private static final String METADATA_FILE = "image_metadata.props";
private File imageHomeDirectory;
+ private final CyEventHelper eventHelper;
// For image I/O, PNG is used as bitmap image format.
private static final String IMAGE_EXT = "png";
-
+
// Default vectors
- private static final Class<?>[] DEF_VECTORS = {
- GradientRoundRectangleLayer.class,
GradientOvalLayer.class };
-
-
- RestoreImageTask(final File imageLocaiton, final
CustomGraphicsManagerImpl manager) {
+ private static final Class<?>[] DEF_VECTORS = {
GradientRoundRectangleLayer.class, GradientOvalLayer.class };
+
+ RestoreImageTask(final File imageLocaiton, final
CustomGraphicsManagerImpl manager, final CyEventHelper eventHelper) {
this.manager = manager;
-
+ this.eventHelper = eventHelper;
+
// For loading images in parallel.
this.imageLoaderService =
Executors.newFixedThreadPool(NUM_THREADS);
-
this.imageHomeDirectory = imageLocaiton;
}
-
+
private void restoreDefaultVectorImageObjects() {
for (Class<?> cls : DEF_VECTORS) {
@@ -74,8 +74,11 @@
try {
Object obj = cls.newInstance();
if (obj instanceof CyCustomGraphics) {
- manager.graphicsMap.put(
((CyCustomGraphics) obj).getIdentifier(), (CyCustomGraphics) obj);
-
manager.isUsedCustomGraphics.put((CyCustomGraphics) obj, false);
+ final CyCustomGraphics<?> cg =
(CyCustomGraphics) obj;
+ if
(manager.graphicsMap.containsKey(cg.getIdentifier()) == false) {
+
manager.graphicsMap.put(cg.getIdentifier(), cg);
+
manager.isUsedCustomGraphics.put(cg, false);
+ }
}
} catch (InstantiationException e) {
throw new RuntimeException(e);
@@ -99,13 +102,12 @@
long endTime = System.currentTimeMillis();
double sec = (endTime - startTime) / (1000.0);
logger.info("Image saving process finished in " + sec + "
sec.");
-
+
+ eventHelper.fireEvent(new
CustomGraphicsLibraryUpdatedEvent(manager));
}
-
-
+
private void restoreImages() {
- final CompletionService<BufferedImage> cs = new
ExecutorCompletionService<BufferedImage>(
- imageLoaderService);
+ final CompletionService<BufferedImage> cs = new
ExecutorCompletionService<BufferedImage>(imageLoaderService);
imageHomeDirectory.mkdir();
@@ -143,16 +145,14 @@
if (name.contains("___"))
name = name.replace("___", ",");
- Future<BufferedImage> f = cs.submit(new
LoadImageTask(file
- .toURI().toURL()));
+ Future<BufferedImage> f = cs.submit(new
LoadImageTask(file.toURI().toURL()));
fMap.put(f, name);
String tagStr = null;
if (imageProps.length > 3) {
tagStr = imageProps[3];
final Set<String> tags = new
TreeSet<String>();
- String[] tagParts =
tagStr.split("\\"
- +
AbstractDCustomGraphics.LIST_DELIMITER);
+ String[] tagParts =
tagStr.split("\\" + AbstractDCustomGraphics.LIST_DELIMITER);
for (String tag : tagParts)
tags.add(tag.trim());
@@ -166,9 +166,9 @@
final BufferedImage image = f.get();
if (image == null)
continue;
+
+ final CyCustomGraphics<?> cg = new
URLImageCustomGraphics(fMap.get(f), image);
- final CyCustomGraphics cg = new
URLImageCustomGraphics(
- fMap.get(f), image);
if (cg instanceof Taggable &&
metatagMap.get(f) != null)
((Taggable)
cg).getTags().addAll(metatagMap.get(f));
@@ -183,7 +183,6 @@
continue;
}
}
-
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (InterruptedException e) {
@@ -203,17 +202,15 @@
long endTime = System.currentTimeMillis();
double sec = (endTime - startTime) / (1000.0);
logger.info("Image loading process finished in " + sec + "
sec.");
- logger.info("Currently, " + (manager.graphicsMap.size() - 1)
- + " images are available.");
+ logger.info("Currently, " + (manager.graphicsMap.size() - 1) +
" images are available.");
}
-
@Override
public void cancel() {
// TODO Auto-generated method stub
}
-
+
private final class LoadImageTask implements Callable<BufferedImage> {
private final URL imageURL;
@@ -222,7 +219,6 @@
this.imageURL = imageURL;
}
-
public BufferedImage call() throws Exception {
if (imageURL == null)
throw new IllegalStateException("URL string
cannot be null.");
@@ -232,5 +228,4 @@
}
-
}
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTaskFactory.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTaskFactory.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/RestoreImageTaskFactory.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -2,6 +2,7 @@
import java.io.File;
+import org.cytoscape.event.CyEventHelper;
import org.cytoscape.work.TaskFactory;
import org.cytoscape.work.TaskIterator;
@@ -9,16 +10,17 @@
private final File imageLocation;
private final CustomGraphicsManagerImpl manager;
+ private final CyEventHelper eventHelper;
- RestoreImageTaskFactory(final File imageLocation, final
CustomGraphicsManagerImpl manager) {
+ RestoreImageTaskFactory(final File imageLocation, final
CustomGraphicsManagerImpl manager, final CyEventHelper eventHelper) {
this.manager = manager;
this.imageLocation = imageLocation;
+ this.eventHelper = eventHelper;
}
@Override
public TaskIterator createTaskIterator() {
-
- return new TaskIterator(new RestoreImageTask(imageLocation,
manager));
+ return new TaskIterator(new RestoreImageTask(imageLocation,
manager, eventHelper));
}
}
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/action/CustomGraphicsManagerAction.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/action/CustomGraphicsManagerAction.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/action/CustomGraphicsManagerAction.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -6,6 +6,7 @@
import org.cytoscape.application.CyApplicationManager;
import org.cytoscape.application.swing.AbstractCyAction;
import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
+import org.cytoscape.ding.customgraphicsmgr.internal.ui.CustomGraphicsBrowser;
import
org.cytoscape.ding.customgraphicsmgr.internal.ui.CustomGraphicsManagerDialog;
@@ -14,12 +15,12 @@
private final CustomGraphicsManagerDialog dialog;
public CustomGraphicsManagerAction(final CustomGraphicsManager manager,
- final CyApplicationManager
applicationManager)
+ final CyApplicationManager
applicationManager, final CustomGraphicsBrowser browser)
{
super("Open Custom Graphics Manager");
setPreferredMenu("View");
- this.dialog = new CustomGraphicsManagerDialog(manager,
applicationManager);
+ this.dialog = new CustomGraphicsManagerDialog(manager,
applicationManager, browser);
}
@Override
Added:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedEvent.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedEvent.java
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedEvent.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -0,0 +1,15 @@
+package org.cytoscape.ding.customgraphicsmgr.internal.event;
+
+import org.cytoscape.ding.customgraphics.CustomGraphicsManager;
+import org.cytoscape.event.AbstractCyEvent;
+
+/**
+ * Local event to handle graphics library update
+ *
+ */
+public final class CustomGraphicsLibraryUpdatedEvent extends
AbstractCyEvent<CustomGraphicsManager>{
+
+ public CustomGraphicsLibraryUpdatedEvent(CustomGraphicsManager source) {
+ super(source, CustomGraphicsLibraryUpdatedListener.class);
+ }
+}
Added:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedListener.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedListener.java
(rev 0)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/event/CustomGraphicsLibraryUpdatedListener.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -0,0 +1,8 @@
+package org.cytoscape.ding.customgraphicsmgr.internal.event;
+
+import org.cytoscape.event.CyListener;
+
+public interface CustomGraphicsLibraryUpdatedListener extends CyListener {
+
+ public void handleEvent(CustomGraphicsLibraryUpdatedEvent e);
+}
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsBrowser.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsBrowser.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsBrowser.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -6,10 +6,7 @@
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDropEvent;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
import java.io.File;
-import java.io.IOException;
import java.net.URL;
import java.util.Collection;
import java.util.List;
@@ -20,45 +17,40 @@
import org.cytoscape.ding.customgraphics.CyCustomGraphics;
import org.cytoscape.ding.customgraphics.NullCustomGraphics;
import org.cytoscape.ding.customgraphics.bitmap.URLImageCustomGraphics;
+import
org.cytoscape.ding.customgraphicsmgr.internal.event.CustomGraphicsLibraryUpdatedEvent;
+import
org.cytoscape.ding.customgraphicsmgr.internal.event.CustomGraphicsLibraryUpdatedListener;
import org.jdesktop.swingx.JXList;
/**
* Display list of images available as custom graphics
*
- * @author kono
*/
-public class CustomGraphicsBrowser extends JXList implements
PropertyChangeListener {
+public class CustomGraphicsBrowser extends JXList implements
CustomGraphicsLibraryUpdatedListener {
private static final long serialVersionUID = -8342056297304400824L;
private DefaultListModel model;
private final CustomGraphicsManager pool;
-
+
// For drag and drop
private static DataFlavor urlFlavor;
-
+
static {
try {
- urlFlavor = new DataFlavor(
- "application/x-java-url;
class=java.net.URL");
+ urlFlavor = new DataFlavor("application/x-java-url;
class=java.net.URL");
} catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
}
-
/**
* Creates new form CustomGraphicsBrowserPanel
- *
- * @throws IOException
*/
- public CustomGraphicsBrowser(final CustomGraphicsManager manager)
throws IOException {
+ public CustomGraphicsBrowser(final CustomGraphicsManager manager) {
pool = manager;
initComponents();
addAllImages();
-
-
//Cytoscape.getPropertyChangeSupport().addPropertyChangeListener(Cytoscape.SESSION_LOADED,
this);
}
/**
@@ -77,8 +69,7 @@
this.setDropTarget(new URLDropTarget());
}// </editor-fold>
-
-
+
public void removeCustomGraphics(final CyCustomGraphics cg) {
model.removeElement(cg);
}
@@ -107,7 +98,6 @@
e.printStackTrace();
}
}
-
/**
* D & D
@@ -123,15 +113,14 @@
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
final Transferable trans = dtde.getTransferable();
- //dumpDataFlavors(trans);
+ // dumpDataFlavors(trans);
boolean gotData = false;
try {
-
+
if
(trans.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {
-
- final List<File> fileList =
(List<File>) trans
-
.getTransferData(DataFlavor.javaFileListFlavor);
+ final List<File> fileList =
(List<File>) trans.getTransferData(DataFlavor.javaFileListFlavor);
+
for (File file : fileList) {
addCustomGraphics(file.toURI().toURL().toString());
}
@@ -142,9 +131,8 @@
addCustomGraphics(url.toString());
gotData = true;
} else if
(trans.isDataFlavorSupported(DataFlavor.stringFlavor)) {
- String s = (String) trans
-
.getTransferData(DataFlavor.stringFlavor);
-
+ String s = (String)
trans.getTransferData(DataFlavor.stringFlavor);
+
URL url = new URL(s);
addCustomGraphics(url.toString());
gotData = true;
@@ -167,12 +155,15 @@
}
- public void propertyChange(PropertyChangeEvent e) {
+
+ @Override
+ public void handleEvent(CustomGraphicsLibraryUpdatedEvent e) {
// Clear the model, and build new List from current pool of
graphics
model.removeAllElements();
model.clear();
-
+
addAllImages();
+
}
}
Modified:
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-customgraphics-manager-impl/src/main/java/org/cytoscape/ding/customgraphicsmgr/internal/ui/CustomGraphicsManagerDialog.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -35,7 +35,7 @@
// List of graphics available
- private CustomGraphicsBrowser browser;
+ private final CustomGraphicsBrowser browser;
// Panel for displaying actual size image
private final CustomGraphicsDetailPanel detail;
@@ -49,17 +49,24 @@
* @param parent
* @param modal
*/
- public CustomGraphicsManagerDialog(final CustomGraphicsManager manager,
final CyApplicationManager appManager) {
+ public CustomGraphicsManagerDialog(final CustomGraphicsManager manager,
final CyApplicationManager appManager,
+ final CustomGraphicsBrowser browser) {
super();
+ if (browser == null)
+ throw new NullPointerException("CustomGraphicsBrowser
is null.");
+
this.setModal(false);
this.manager = manager;
initComponents();
- try {
- browser = new CustomGraphicsBrowser(this.manager);
- } catch (IOException e) {
- logger.error("Could not get an instance of
CustomGraphicsBrowser.", e);
- }
-
+
+ this.browser = browser;
+ // try {
+ // browser = new CustomGraphicsBrowser(this.manager);
+ // } catch (IOException e) {
+ // logger.error("Could not get an instance of
CustomGraphicsBrowser.",
+ // e);
+ // }
+
detail = new CustomGraphicsDetailPanel(appManager);
this.leftScrollPane.setViewportView(browser);
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphics/CustomGraphicsRange.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphics/CustomGraphicsRange.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/customgraphics/CustomGraphicsRange.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -3,6 +3,7 @@
import java.util.HashSet;
import java.util.Set;
+import org.cytoscape.graph.render.stateful.CustomGraphic;
import org.cytoscape.view.model.DiscreteRange;
public class CustomGraphicsRange extends DiscreteRange<CyCustomGraphics> {
Modified:
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
===================================================================
---
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/ding-impl/ding-presentation-impl/src/main/java/org/cytoscape/ding/impl/visualproperty/CustomGraphicsVisualProperty.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -1,28 +1,28 @@
package org.cytoscape.ding.impl.visualproperty;
+import java.util.List;
+
import org.cytoscape.ding.customgraphics.CustomGraphicsRange;
import org.cytoscape.ding.customgraphics.CyCustomGraphics;
+import org.cytoscape.graph.render.stateful.CustomGraphic;
import org.cytoscape.view.model.AbstractVisualProperty;
-public class CustomGraphicsVisualProperty extends
- AbstractVisualProperty<CyCustomGraphics> {
+public class CustomGraphicsVisualProperty extends
AbstractVisualProperty<CyCustomGraphics> {
-
- public CustomGraphicsVisualProperty(final CyCustomGraphics
defaultValue, final CustomGraphicsRange customGraphicsRange,
- String id, String displayName, Class<?>
targetObjectDataType) {
- super(defaultValue, customGraphicsRange, id, displayName,
- targetObjectDataType);
+ public CustomGraphicsVisualProperty(final
CyCustomGraphics<CustomGraphic> defaultValue,
+ final CustomGraphicsRange customGraphicsRange, String
id, String displayName, Class<?> targetObjectDataType) {
+ super(defaultValue, customGraphicsRange, id, displayName,
targetObjectDataType);
}
-
@Override
- public String toSerializableString(CyCustomGraphics value) {
+ public String toSerializableString(final CyCustomGraphics value) {
+ List layers = value.getLayers();
// TODO Auto-generated method stub
return null;
}
@Override
- public CyCustomGraphics parseSerializableString(String value) {
+ public CyCustomGraphics<CustomGraphic> parseSerializableString(String
value) {
// TODO Auto-generated method stub
return null;
}
Modified:
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
===================================================================
---
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
2012-02-28 19:53:01 UTC (rev 28385)
+++
core3/impl/trunk/io-impl/impl/src/main/java/org/cytoscape/io/internal/read/session/Cy3SessionReaderImpl.java
2012-02-28 21:31:35 UTC (rev 28386)
@@ -38,9 +38,12 @@
import static
org.cytoscape.io.internal.util.session.SessionUtil.VIZMAP_XML_FILE;
import static org.cytoscape.io.internal.util.session.SessionUtil.XGMML_EXT;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
@@ -92,6 +95,8 @@
* Session reader implementation that handles the Cytoscape 3 session format.
*/
public class Cy3SessionReaderImpl extends AbstractSessionReader {
+
+ private static final String TEMP_DIR = "java.io.tmpdir";
public static final Pattern NETWORK_PATTERN =
Pattern.compile(".*/"+NETWORKS_FOLDER+"(([^/]+)[.]xgmml)");
public static final Pattern NETWORK_NAME_PATTERN =
Pattern.compile("(\\d+)(_[^_]+)?");
@@ -355,27 +360,23 @@
String appName = items[2];
String fileName = items[items.length - 1];
- String tmpDir = System.getProperty("java.io.tmpdir");
- File theFile = new File(tmpDir, fileName);
+ final String tmpDir = System.getProperty(TEMP_DIR);
+ final File theFile = new File(tmpDir, fileName);
try {
- // Write input stream into tmp file
- BufferedWriter out = null;
- BufferedReader in = null;
+ // Write input stream into temp file (Use binary
streams to support images/movies/etc.)
+ final BufferedInputStream bin = new
BufferedInputStream(is);
+ final BufferedOutputStream output = new
BufferedOutputStream(new FileOutputStream(theFile));
+ final byte buf[] = new byte[256];
+
+ int len;
+ while ((len = bin.read(buf)) != -1)
+ output.write(buf, 0, len);
+
+ output.flush();
+ output.close();
+ bin.close();
- in = new BufferedReader(new InputStreamReader(is));
- out = new BufferedWriter(new FileWriter(theFile));
-
- // Write to tmp file
- String inputLine;
-
- while ((inputLine = in.readLine()) != null) {
- out.write(inputLine);
- out.newLine();
- }
-
- in.close();
- out.close();
} catch (IOException e) {
logger.error("Error: read from zip: " + entryName, e);
return;
--
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.