Author: kono
Date: 2012-07-27 17:43:40 -0700 (Fri, 27 Jul 2012)
New Revision: 30029
Added:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSIMI25VisualStyleBuilder.java
Removed:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICWebServiceClient.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/InteractionClusterMapper.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ImportNetworkFromPSICQUICTask.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/PSICQUICSearchUI.java
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/SourceStatusPanel.java
Log:
Visual Style Builder ported from 2.x.
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/CyActivator.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -15,7 +15,9 @@
import org.cytoscape.task.create.CreateNetworkViewTaskFactory;
import org.cytoscape.util.swing.OpenBrowser;
import org.cytoscape.view.layout.CyLayoutAlgorithmManager;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualStyleFactory;
import org.cytoscape.webservice.psicquic.mapper.MergedNetworkBuilder;
import org.cytoscape.webservice.psicquic.task.ExpandNodeContextMenuFactory;
import org.cytoscape.work.swing.DialogTaskManager;
@@ -35,18 +37,27 @@
CyNetworkManager cyNetworkManagerServiceRef = getService(bc,
CyNetworkManager.class);
CyLayoutAlgorithmManager layoutManager = getService(bc,
CyLayoutAlgorithmManager.class);
+ VisualStyleFactory vsFactoryServiceRef = getService(bc,
VisualStyleFactory.class);
+ VisualMappingFunctionFactory passthroughMappingFactoryRef =
getService(bc, VisualMappingFunctionFactory.class,
+ "(mapping.type=passthrough)");
+ VisualMappingFunctionFactory discreteMappingFactoryRef =
getService(bc, VisualMappingFunctionFactory.class,
+ "(mapping.type=discrete)");
+
VisualMappingManager vmm = getService(bc,
VisualMappingManager.class);
CyEventHelper eh = getService(bc, CyEventHelper.class);
CreateNetworkViewTaskFactory createViewTaskFactoryServiceRef =
getService(bc,
CreateNetworkViewTaskFactory.class);
-
+
+ PSIMI25VisualStyleBuilder vsBuilder = new
PSIMI25VisualStyleBuilder(vsFactoryServiceRef,
+ discreteMappingFactoryRef,
passthroughMappingFactoryRef);
+
final MergedNetworkBuilder builder = new
MergedNetworkBuilder(cyNetworkFactoryServiceRef);
final PSICQUICWebServiceClient psicquicClient = new
PSICQUICWebServiceClient(
"http://www.ebi.ac.uk/Tools/webservices/psicquic/registry/registry", "PSICQUIC
Universal Client",
"REST version of PSICQUIC web service client.",
cyNetworkFactoryServiceRef, cyNetworkManagerServiceRef,
- tm, createViewTaskFactoryServiceRef,
openBrowser, builder);
+ tm, createViewTaskFactoryServiceRef,
openBrowser, builder, vsBuilder, vmm);
registerAllServices(bc, psicquicClient, new Properties());
Deleted:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSI25VisualStyleBuilder.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -1,217 +0,0 @@
-package org.cytoscape.webservice.psicquic;
-
-
-public class PSI25VisualStyleBuilder {
-
-// // Default visual style name
-// private static final String DEF_VS_NAME = "PSI-MI 25 Style";
-//
-// // Prefix for all PSI-MI 25 attributes
-// public static final String ATTR_PREFIX = "PSI-MI-25.";
-//
-// // Top level interaction types
-// private static final String[] ITR_TYPE_ROOT_TERMS = { "MI:0208",
"MI:0403", "MI:0914" };
-//
-// private static final Map<String, String> type = new HashMap<String,
String>();
-//
-// private static VisualStyle defStyle;
-//
-// static {
-// buildOntologyMap();
-// defStyle = defaultVisualStyleBuilder();
-// }
-//
-// public static VisualStyle getDefVS() {
-// return defStyle;
-// }
-//
-// // Actual design
-// private static VisualStyle defaultVisualStyleBuilder() {
-//
-// final VisualStyle defStyle = new VisualStyle(DEF_VS_NAME);
-//
-// NodeAppearanceCalculator nac =
defStyle.getNodeAppearanceCalculator();
-// EdgeAppearanceCalculator eac =
defStyle.getEdgeAppearanceCalculator();
-// GlobalAppearanceCalculator gac =
defStyle.getGlobalAppearanceCalculator();
-//
-// // Default values
-// final int edgeOp = 160;
-// final Color nodeColor = new Color(0, 128, 128);
-// final Color nodeLineColor = new Color(40, 40, 40);
-// final Color nodeLabelColor = new Color(30, 30, 30);
-//
-// final Color nodeCompoundColor = new Color(100, 100, 100);
-// final Color nodeNestedColor = Color.white;
-//
-// // final Color edgeColor = new Color(112,128,144);
-// final Color edgeColor = Color.black;
-// final Font nodeLabelFont = new Font("SansSerif.BOLD", 16,
Font.BOLD);
-// // final Color nodeLabelColor = new Color(105,105,105);
-//
-// gac.setDefaultBackgroundColor(Color.white);
-//
-// final PassThroughMapping m = new PassThroughMapping("",
AbstractCalculator.ID);
-//
-// final Calculator calc = new BasicCalculator(DEF_VS_NAME + "-" +
"NodeLabelMapping", m, NODE_LABEL);
-// // PassThroughMapping me = new PassThroughMapping("",
ATTR_PREFIX +
-// // "interaction type");
-// //
-// // EdgeCalculator calce = new EdgeCalculator(DEF_VS_NAME + "-"
-// // + "EdgeLabelMapping", me, null, EDGE_LABEL);
-// nac.setCalculator(calc);
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FILL_COLOR, nodeColor);
-// nac.getDefaultAppearance().set(VisualPropertyType.NODE_SHAPE,
NodeShape.RECT);
-// nac.getDefaultAppearance().set(VisualPropertyType.NODE_OPACITY,
150);
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_BORDER_OPACITY, 220);
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LINE_WIDTH, 3);
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_BORDER_COLOR,
nodeLineColor);
-// nac.getDefaultAppearance().set(VisualPropertyType.NODE_WIDTH,
45);
-// nac.getDefaultAppearance().set(VisualPropertyType.NODE_HEIGHT,
25);
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LABEL_COLOR,
nodeLabelColor);
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FONT_FACE,
nodeLabelFont);
-//
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_LABEL_POSITION,
-// new LabelPosition(Label.SOUTH, Label.NORTHWEST,
Label.JUSTIFY_CENTER, -7, 1.0));
-//
-// // TODO: this is for 2.8.0
-// // nac.getDefaultAppearance().set(
-// // VisualPropertyType.NODE_LABEL_POSITION,
-// // new ObjectPositionImpl(Position.SOUTH, Position.NORTH_WEST,
-// // Justification.JUSTIFY_CENTER, -7, 1.0));
-//
-//
nac.getDefaultAppearance().set(VisualPropertyType.NODE_FONT_SIZE, 10);
-// nac.setNodeSizeLocked(false);
-//
-// DiscreteMapping nodeColorMapping = new
DiscreteMapping(nodeColor, ATTR_PREFIX + "interactor type",
-// ObjectMapping.NODE_MAPPING);
-// nodeColorMapping.putMapValue("compound", nodeCompoundColor);
-// nodeColorMapping.putMapValue("nested", nodeNestedColor);
-// final Calculator nodeColorCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeColorMapping", nodeColorMapping,
-// VisualPropertyType.NODE_FILL_COLOR);
-// nac.setCalculator(nodeColorCalc);
-//
-// DiscreteMapping nodeShapeMapping = new
DiscreteMapping(NodeShape.RECT, ATTR_PREFIX + "interactor type",
-// ObjectMapping.NODE_MAPPING);
-// nodeShapeMapping.putMapValue("compound", NodeShape.ELLIPSE);
-// nodeShapeMapping.putMapValue("nested", NodeShape.ROUND_RECT);
-// final Calculator nodeShapeCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeShapeMapping", nodeShapeMapping,
-// VisualPropertyType.NODE_SHAPE);
-// nac.setCalculator(nodeShapeCalc);
-//
-// DiscreteMapping nodeWidthMapping = new DiscreteMapping(30,
ATTR_PREFIX + "interactor type",
-// ObjectMapping.NODE_MAPPING);
-// nodeWidthMapping.putMapValue("compound", 15);
-// nodeWidthMapping.putMapValue("nested", 100);
-// final Calculator nodeWidthCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeWidthMapping", nodeWidthMapping,
-// VisualPropertyType.NODE_WIDTH);
-// nac.setCalculator(nodeWidthCalc);
-// DiscreteMapping nodeHeightMapping = new DiscreteMapping(30,
ATTR_PREFIX + "interactor type",
-// ObjectMapping.NODE_MAPPING);
-// nodeHeightMapping.putMapValue("compound", 15);
-// nodeHeightMapping.putMapValue("nested", 100);
-// final Calculator nodeHeightCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "NodeHeightMapping",
-// nodeHeightMapping,
VisualPropertyType.NODE_HEIGHT);
-// nac.setCalculator(nodeHeightCalc);
-//
-// // eac.setCalculator(calce);
-// eac.getDefaultAppearance().set(VisualPropertyType.EDGE_COLOR,
edgeColor);
-//
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL_COLOR, Color.red);
-//
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_FONT_SIZE, 5);
-//
-// eac.getDefaultAppearance().set(VisualPropertyType.EDGE_OPACITY,
edgeOp);
-//
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_SRCARROW_OPACITY,
edgeOp);
-//
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_TGTARROW_OPACITY,
edgeOp);
-// //
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL_OPACITY,
-// // 80);
-//
eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LINE_WIDTH, 1);
-// eac.getDefaultAppearance().set(VisualPropertyType.EDGE_LABEL,
"");
-//
-// // Interaction Type mapping
-// DiscreteMapping lineStyle = new
DiscreteMapping(LineStyle.SOLID, ATTR_PREFIX + "interaction type",
-// ObjectMapping.EDGE_MAPPING);
-// DiscreteMapping lineWidth = new DiscreteMapping(1.0,
ATTR_PREFIX + "interaction type",
-// ObjectMapping.EDGE_MAPPING);
-// DiscreteMapping edgeColorMap = new DiscreteMapping(Color.black,
ATTR_PREFIX + "interaction type",
-// ObjectMapping.EDGE_MAPPING);
-// generateInteractionTypeMap(lineStyle, lineWidth, edgeColorMap);
-//
-// final Calculator lineStyleCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "EdgeLineStyleMapping", lineStyle,
-// VisualPropertyType.EDGE_LINE_STYLE);
-//
-// final Calculator lineWidthCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "EdgeLineWidthMapping", lineWidth,
-// VisualPropertyType.EDGE_LINE_WIDTH);
-//
-// final Calculator edgeColorCalc = new
BasicCalculator(DEF_VS_NAME + "-" + "EdgeColorMapping", edgeColorMap,
-// VisualPropertyType.EDGE_COLOR);
-//
-// //
-// // DiscreteMapping sourceShape = new
DiscreteMapping(ArrowShape.NONE,
-// // "source experimental role", ObjectMapping.EDGE_MAPPING);
-// //
-// // sourceShape.putMapValue("bait", ArrowShape.DIAMOND);
-// // sourceShape.putMapValue("prey", ArrowShape.CIRCLE);
-// //
-// // EdgeCalculator sourceShapeCalc = new
EdgeCalculator(DEF_VS_NAME + "-"
-// // + "EdgeSourceArrowShapeMapping", sourceShape, null,
-// // VisualPropertyType.EDGE_SRCARROW_SHAPE);
-// //
-// // DiscreteMapping targetColor = new
DiscreteMapping(Color.black,
-// // "target experimental role", ObjectMapping.EDGE_MAPPING);
-// //
-// // targetColor.putMapValue("bait", Color.red);
-// // targetColor.putMapValue("prey", Color.red);
-// //
-// // EdgeCalculator targetColorCalc = new
EdgeCalculator(DEF_VS_NAME + "-"
-// // + "EdgeTargetArrowColorMapping", targetColor, null,
-// // VisualPropertyType.EDGE_TGTARROW_COLOR);
-// //
-// // DiscreteMapping sourceColor = new
DiscreteMapping(Color.black,
-// // "source experimental role", ObjectMapping.EDGE_MAPPING);
-// //
-// // sourceColor.putMapValue("bait", Color.red);
-// // sourceColor.putMapValue("prey", Color.red);
-// //
-// // EdgeCalculator sourceColorCalc = new
EdgeCalculator(DEF_VS_NAME + "-"
-// // + "EdgeSourceArrowColorMapping", targetColor, null,
-// // VisualPropertyType.EDGE_SRCARROW_COLOR);
-// //
-// eac.setCalculator(lineStyleCalc);
-// eac.setCalculator(lineWidthCalc);
-// eac.setCalculator(edgeColorCalc);
-// // eac.setCalculator(targetColorCalc);
-//
-// return defStyle;
-// }
-//
-// private static void generateInteractionTypeMap(DiscreteMapping
lineStyle, DiscreteMapping lineWidth,
-// DiscreteMapping edgeColor) {
-// // TODO Auto-generated method stub
-// // for (String childTerm : type.keySet()) {
-// // if ((type.get(childTerm)).equals("MI:0208")) {
-// // lineStyle.putMapValue(childTerm, LineStyle.LONG_DASH);
-// // lineWidth.putMapValue(childTerm, 2.0);
-// // edgeColor.putMapValue(childTerm, Color.CYAN);
-// // } else if ((type.get(childTerm)).equals("MI:0403")) {
-// // lineStyle.putMapValue(childTerm, LineStyle.SOLID);
-// // lineWidth.putMapValue(childTerm, 2.0);
-// // edgeColor.putMapValue(childTerm, Color.green);
-// // } else if ((type.get(childTerm)).equals("MI:0914")) {
-// // lineStyle.putMapValue(childTerm, LineStyle.SOLID);
-// // lineWidth.putMapValue(childTerm, 3.0);
-// // edgeColor.putMapValue(childTerm, Color.DARK_GRAY);
-// // }
-// // }
-//
-// lineStyle.putMapValue("MI:0208", LineStyle.LONG_DASH);
-// lineWidth.putMapValue("MI:0208", 3.0);
-// edgeColor.putMapValue("MI:0208", Color.CYAN);
-//
-// lineStyle.putMapValue("MI:0403", LineStyle.SOLID);
-// lineWidth.putMapValue("MI:0403", 1.0);
-// edgeColor.putMapValue("MI:0403", Color.green);
-//
-// lineStyle.putMapValue("MI:0914", LineStyle.SOLID);
-// lineWidth.putMapValue("MI:0914", 3.0);
-// edgeColor.putMapValue("MI:0914", Color.DARK_GRAY);
-// }
-}
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICRestClient.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -68,7 +68,7 @@
public static final Long ERROR_CANCEL = -3l;
// Timeout for search. TODO: Make public as property.
- private static final long SEARCH_TIMEOUT_MSEC = 7000;
+ private static final long SEARCH_TIMEOUT_MSEC = 10000;
// Timeout for import. TODO: Make public as property.
private static final long IMPORT_TIMEOUT = 1000;
@@ -77,7 +77,7 @@
private final RegistryManager regManager;
private final MergedNetworkBuilder builder;
- private boolean canceled = false;
+ static boolean canceled = false;
public PSICQUICRestClient(final CyNetworkFactory factory, final
RegistryManager regManager,
final MergedNetworkBuilder builder) {
@@ -162,14 +162,19 @@
final double increment = 1.0d / (double) targetServices.size();
final SortedSet<String> sourceSet = new TreeSet<String>();
+ final SortedSet<String> nameSet = new TreeSet<String>();
final Set<ImportNetworkAsMitabTask> taskSet = new
HashSet<ImportNetworkAsMitabTask>();
for (final String serviceURL : targetServices) {
+
nameSet.add(regManager.getSource2NameMap().get(serviceURL));
final ImportNetworkAsMitabTask task = new
ImportNetworkAsMitabTask(serviceURL, query, mode);
completionService.submit(task);
taskSet.add(task);
sourceSet.add(serviceURL);
}
+
+
+
int i = 0;
for (final String service : targetServices) {
if (canceled) {
@@ -192,19 +197,18 @@
completed = completed + increment;
tm.setProgress(completed);
+
nameSet.remove(regManager.getSource2NameMap().get(service));
+// final StringBuilder sBuilder = new
StringBuilder();
+// for (String sourceStr : sourceSet) {
+//
sBuilder.append(regManager.getSource2NameMap().get(sourceStr) + " ");
+// }
- final StringBuilder sBuilder = new
StringBuilder();
- for (String sourceStr : sourceSet) {
-
sBuilder.append(regManager.getSource2NameMap().get(sourceStr) + " ");
- }
-
tm.setStatusMessage((i + 1) + " / " +
targetServices.size() + " tasks finished.\n"
- + "Still waiting responses from
the following databases:\n\n" + sBuilder.toString());
+ + "Still waiting responses from
the following databases:\n\n" + nameSet.toString());
} catch (InterruptedException ie) {
- for (ImportNetworkAsMitabTask t : taskSet) {
- // t.cancel();
- }
+ for (final ImportNetworkAsMitabTask t : taskSet)
+ t.cancel();
taskSet.clear();
@@ -365,9 +369,13 @@
final PsimiTabReader mitabReader = new
PsimiTabReader(false);
return mitabReader.read(queryURL);
}
+
+ public void cancel() {
+ canceled = true;
+ }
}
public void cancel() {
- this.canceled = true;
+ canceled = true;
}
}
\ No newline at end of file
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICWebServiceClient.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICWebServiceClient.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSICQUICWebServiceClient.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -19,6 +19,7 @@
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.task.create.CreateNetworkViewTaskFactory;
import org.cytoscape.util.swing.OpenBrowser;
+import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient.SearchMode;
import org.cytoscape.webservice.psicquic.mapper.MergedNetworkBuilder;
import org.cytoscape.webservice.psicquic.task.ImportNetworkFromPSICQUICTask;
@@ -48,12 +49,15 @@
private final CreateNetworkViewTaskFactory createViewTaskFactory;
private SearchRecoredsTask searchTask;
-
+
private final OpenBrowser openBrowser;
+ private final PSIMI25VisualStyleBuilder vsBuilder;
+ private final VisualMappingManager vmm;
public PSICQUICWebServiceClient(final String uri, final String
displayName, final String description,
- final CyNetworkFactory networkFactory, final
CyNetworkManager networkManager, final TaskManager<?, ?> tManager,
- final CreateNetworkViewTaskFactory
createViewTaskFactory, final OpenBrowser openBrowser, final
MergedNetworkBuilder builder) {
+ final CyNetworkFactory networkFactory, final
CyNetworkManager networkManager,
+ final TaskManager<?, ?> tManager, final
CreateNetworkViewTaskFactory createViewTaskFactory,
+ final OpenBrowser openBrowser, final
MergedNetworkBuilder builder, PSIMI25VisualStyleBuilder vsBuilder,
VisualMappingManager vmm) {
super(uri, displayName, description);
this.networkManager = networkManager;
@@ -61,6 +65,8 @@
this.createViewTaskFactory = createViewTaskFactory;
this.openBrowser = openBrowser;
this.builder = builder;
+ this.vsBuilder = vsBuilder;
+ this.vmm = vmm;
// Initialize registry manager in different thread.
initRegmanager(networkFactory);
@@ -93,12 +99,12 @@
throw new IllegalStateException("PSICQUIC Reg
manager initialization interrupted.", ie);
}
}
-
- if(regManager == null)
+
+ if (regManager == null)
throw new IllegalStateException("PSICQUIC Reg manager
could not be initialized.");
-
+
client = new PSICQUICRestClient(factory, regManager, builder);
-
+
long endTime = System.currentTimeMillis();
double sec = (endTime - startTime) / (1000.0);
logger.info("Registry Manager initialized in " + sec + " sec.");
@@ -118,13 +124,12 @@
searchTask.setTargets(activeSource.values());
networkTask = new ImportNetworkFromPSICQUICTask(query2,
client, networkManager, regManager, searchTask,
- SearchMode.MIQL, createViewTaskFactory);
+ SearchMode.MIQL, createViewTaskFactory,
vsBuilder, vmm);
return new TaskIterator(searchTask, networkTask);
}
}
-
private static final class InitRegistryManagerTask implements
Callable<RegistryManager> {
@Override
public RegistryManager call() throws Exception {
@@ -134,13 +139,13 @@
@Override
public Container getQueryBuilderGUI() {
- return new PSICQUICSearchUI(networkManager, regManager, client,
tManager, createViewTaskFactory, openBrowser);
+ return new PSICQUICSearchUI(networkManager, regManager, client,
tManager, createViewTaskFactory, openBrowser, vsBuilder, vmm);
}
-
+
PSICQUICRestClient getRestClient() {
return this.client;
}
-
+
RegistryManager getRegistryManager() {
return regManager;
}
Added:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSIMI25VisualStyleBuilder.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSIMI25VisualStyleBuilder.java
(rev 0)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSIMI25VisualStyleBuilder.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -0,0 +1,121 @@
+package org.cytoscape.webservice.psicquic;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Paint;
+
+import org.cytoscape.view.presentation.property.BasicVisualLexicon;
+import org.cytoscape.view.presentation.property.LineTypeVisualProperty;
+import org.cytoscape.view.presentation.property.NodeShapeVisualProperty;
+import org.cytoscape.view.presentation.property.values.LineType;
+import org.cytoscape.view.vizmap.VisualMappingFunctionFactory;
+import org.cytoscape.view.vizmap.VisualStyle;
+import org.cytoscape.view.vizmap.VisualStyleFactory;
+import org.cytoscape.view.vizmap.mappings.DiscreteMapping;
+import org.cytoscape.view.vizmap.mappings.PassthroughMapping;
+import org.cytoscape.webservice.psicquic.mapper.InteractionClusterMapper;
+
+public class PSIMI25VisualStyleBuilder {
+
+ // Default visual style name
+ public static final String DEF_VS_NAME = "PSIMI 25 Style";
+
+ // Presets
+ private static final Color NODE_COLOR = Color.WHITE;
+ private static final Color NODE_BORDER_COLOR = new Color(180, 180, 180);
+ private static final Color NODE_LABEL_COLOR = new Color(100, 100, 100);
+ private static final Color EDGE_COLOR = new Color(180, 180, 180);
+
+ private static Font NODE_LABEL_FONT;
+ static {
+ NODE_LABEL_FONT = new Font("HelveticaNeue-UltraLight",
Font.PLAIN, 10);
+ if (NODE_LABEL_FONT == null)
+ NODE_LABEL_FONT = new Font("SansSerif", Font.PLAIN, 10);
+ }
+
+ // Color presets for some model organisms
+ private static final Color COLOR_HUMAN = new Color(0x43, 0x6E, 0xEE);
+ private static final Color COLOR_MOUSE = new Color(0xEE, 0x76, 0x21);
+ private static final Color COLOR_RAT = new Color(0xFF, 0xA5, 0x00);
+ private static final Color COLOR_FLY = new Color(0x93, 0x70, 0xDB);
+ private static final Color COLOR_WORM = new Color(0x6B, 0x8E, 0x23);
+ private static final Color COLOR_YEAST = new Color(0x9C, 0x9C, 0x9C);
+ private static final Color COLOR_ECOLI = new Color(0xB0, 0xE2, 0xFF);
+ private static final Color COLOR_ARABIDOPSIS = new Color(0xFF, 0xF5,
0xEE);
+
+ private final VisualStyleFactory vsFactory;
+
+ private final VisualMappingFunctionFactory discreteMappingFactory;
+ private final VisualMappingFunctionFactory passthroughMappingFactory;
+
+ public PSIMI25VisualStyleBuilder(final VisualStyleFactory vsFactory,
+ final VisualMappingFunctionFactory
discreteMappingFactory,
+ final VisualMappingFunctionFactory
passthroughMappingFactory) {
+ this.vsFactory = vsFactory;
+ this.discreteMappingFactory = discreteMappingFactory;
+ this.passthroughMappingFactory = passthroughMappingFactory;
+ }
+
+ public VisualStyle getVisualStyle() {
+
+ final VisualStyle defStyle =
vsFactory.createVisualStyle(DEF_VS_NAME);
+
+ // Network VP
+ final Color backGroundColor = Color.white;
+
defStyle.setDefaultValue(BasicVisualLexicon.NETWORK_BACKGROUND_PAINT,
backGroundColor);
+
+ // Node Label Mapping
+ final PassthroughMapping<String, String> labelPassthrough =
(PassthroughMapping<String, String>) passthroughMappingFactory
+
.createVisualMappingFunction(InteractionClusterMapper.PREDICTED_GENE_NAME,
String.class,
+ BasicVisualLexicon.NODE_LABEL);
+ defStyle.addVisualMappingFunction(labelPassthrough);
+
+ // Node View Defaults
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_SHAPE,
NodeShapeVisualProperty.ELLIPSE);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_BORDER_PAINT,
NODE_BORDER_COLOR);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_FILL_COLOR,
NODE_COLOR);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_LABEL_COLOR,
NODE_LABEL_COLOR);
+
defStyle.setDefaultValue(BasicVisualLexicon.NODE_LABEL_FONT_FACE,
NODE_LABEL_FONT);
+
defStyle.setDefaultValue(BasicVisualLexicon.NODE_LABEL_TRANSPARENCY, 210);
+
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_BORDER_WIDTH,
1.0d);
+
defStyle.setDefaultValue(BasicVisualLexicon.NODE_BORDER_TRANSPARENCY, 150);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_WIDTH, 30d);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_HEIGHT, 30d);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_SIZE, 30d);
+ defStyle.setDefaultValue(BasicVisualLexicon.NODE_TRANSPARENCY,
190);
+
+ // Edge View Defaults
+ defStyle.setDefaultValue(BasicVisualLexicon.EDGE_TRANSPARENCY,
80);
+ defStyle.setDefaultValue(BasicVisualLexicon.EDGE_WIDTH, 2.0d);
+ defStyle.setDefaultValue(BasicVisualLexicon.EDGE_PAINT,
EDGE_COLOR);
+
+ // Node Color Mapping based on species name
+ final DiscreteMapping<String, Paint> nodeColorMapping =
(DiscreteMapping<String, Paint>) discreteMappingFactory
+ .createVisualMappingFunction("taxonomy",
String.class, BasicVisualLexicon.NODE_FILL_COLOR);
+
+ nodeColorMapping.putMapValue("9606", COLOR_HUMAN);
+ nodeColorMapping.putMapValue("10090", COLOR_MOUSE);
+ nodeColorMapping.putMapValue("10116", COLOR_RAT);
+ nodeColorMapping.putMapValue("7227", COLOR_FLY);
+ nodeColorMapping.putMapValue("10116", COLOR_WORM);
+ nodeColorMapping.putMapValue("4932", COLOR_YEAST);
+ nodeColorMapping.putMapValue("83333", COLOR_ECOLI);
+ nodeColorMapping.putMapValue("3702", COLOR_ARABIDOPSIS);
+
+ defStyle.addVisualMappingFunction(nodeColorMapping);
+
+ // Edge Color Mapping.
+ final DiscreteMapping<Boolean, Paint> edgeColorMapping =
(DiscreteMapping<Boolean, Paint>) discreteMappingFactory
+
.createVisualMappingFunction(InteractionClusterMapper.CROSS_SPECIES_EDGE,
Boolean.class, BasicVisualLexicon.EDGE_STROKE_UNSELECTED_PAINT);
+ edgeColorMapping.putMapValue(Boolean.TRUE, Color.RED);
+ defStyle.addVisualMappingFunction(edgeColorMapping);
+
+ final DiscreteMapping<Boolean, LineType> edgeLineTypeMapping =
(DiscreteMapping<Boolean, LineType>) discreteMappingFactory
+
.createVisualMappingFunction(InteractionClusterMapper.CROSS_SPECIES_EDGE,
Boolean.class, BasicVisualLexicon.EDGE_LINE_TYPE);
+ edgeLineTypeMapping.putMapValue(Boolean.TRUE,
LineTypeVisualProperty.DOT);
+ defStyle.addVisualMappingFunction(edgeLineTypeMapping);
+
+ return defStyle;
+ }
+}
Property changes on:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/PSIMI25VisualStyleBuilder.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/InteractionClusterMapper.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/InteractionClusterMapper.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/InteractionClusterMapper.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -19,6 +19,7 @@
import org.cytoscape.model.CyEdge;
import org.cytoscape.model.CyNetwork;
+import org.cytoscape.model.CyNode;
import org.cytoscape.model.CyRow;
import org.cytoscape.webservice.psicquic.miriam.Miriam;
import org.cytoscape.webservice.psicquic.miriam.Miriam.Datatype;
@@ -36,7 +37,9 @@
private static final String SCHEMA_NAMESPACE =
"org.cytoscape.webservice.psicquic.miriam";
- static final String PREDICTED_GENE_NAME = "Human Readable Gene Name";
+ public static final String PREDICTED_GENE_NAME = "Human Readable Gene
Name";
+ public static final String CROSS_SPECIES_EDGE = "Cross Species
Interaction";
+
static final String PUB_ID = "publication id";
static final String PUB_DB = "publication db";
@@ -138,7 +141,6 @@
}
}
-
}
private void processNames(CyRow row, final Map<String, String> accs) {
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/mapper/MergedNetworkBuilder.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -14,6 +14,7 @@
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkFactory;
import org.cytoscape.model.CyNode;
+import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
import org.cytoscape.view.model.CyNetworkView;
import org.cytoscape.view.model.View;
@@ -103,10 +104,26 @@
final CyEdge newEdge = network.addEdge(sourceNode,
targetNode, true);
mapper.mapEdgeColumn(interaction,
network.getRow(newEdge));
+
+ // Create new attribute if cross species
+ processCrossSpeciesEdge(network.getRow(newEdge),
network.getRow(sourceNode), network.getRow(targetNode));
+
}
logger.info("Import Done: " + network.getSUID());
return nodeMap;
}
+
+ private void processCrossSpeciesEdge(final CyRow row, final CyRow
source, final CyRow target) {
+ final String sTax = source.get(TAXNOMY, String.class);
+ final String tTax = target.get(TAXNOMY, String.class);
+
+ if(sTax == null || tTax == null)
+ return;
+
+ if (sTax.equals(tTax) == false) {
+ row.set(InteractionClusterMapper.CROSS_SPECIES_EDGE,
true);
+ }
+ }
private final void prepareColumns(CyNetwork network) {
final CyTable nodeTable = network.getDefaultNodeTable();
@@ -129,6 +146,8 @@
edgeTable.createListColumn(InteractionClusterMapper.PUB_ID, String.class,
false);
if (edgeTable.getColumn(InteractionClusterMapper.EXPERIMENT) ==
null)
edgeTable.createListColumn(InteractionClusterMapper.EXPERIMENT, String.class,
false);
+ if
(edgeTable.getColumn(InteractionClusterMapper.CROSS_SPECIES_EDGE) == null)
+
edgeTable.createColumn(InteractionClusterMapper.CROSS_SPECIES_EDGE,
Boolean.class, false);
}
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ImportNetworkFromPSICQUICTask.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ImportNetworkFromPSICQUICTask.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/task/ImportNetworkFromPSICQUICTask.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -11,7 +11,10 @@
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.task.create.CreateNetworkViewTaskFactory;
+import org.cytoscape.view.vizmap.VisualMappingManager;
+import org.cytoscape.view.vizmap.VisualStyle;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient;
+import org.cytoscape.webservice.psicquic.PSIMI25VisualStyleBuilder;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient.SearchMode;
import org.cytoscape.webservice.psicquic.RegistryManager;
import org.cytoscape.work.AbstractTask;
@@ -41,12 +44,15 @@
private final SearchMode mode;
private final boolean mergeNetworks;
+ private final PSIMI25VisualStyleBuilder vsBuilder;
+ private final VisualMappingManager vmm;
private volatile boolean canceled = false;
public ImportNetworkFromPSICQUICTask(final String query, final
PSICQUICRestClient client,
final CyNetworkManager manager, final RegistryManager
registryManager, final Set<String> searchResult,
- final SearchMode mode, final
CreateNetworkViewTaskFactory createViewTaskFactory, final boolean toCluster) {
+ final SearchMode mode, final
CreateNetworkViewTaskFactory createViewTaskFactory, final
PSIMI25VisualStyleBuilder vsBuilder,
+ final VisualMappingManager vmm, final boolean
toCluster) {
this.client = client;
this.manager = manager;
this.registryManager = registryManager;
@@ -56,11 +62,14 @@
this.searchResult = searchResult;
this.mode = mode;
this.createViewTaskFactory = createViewTaskFactory;
+ this.vmm = vmm;
+ this.vsBuilder = vsBuilder;
}
public ImportNetworkFromPSICQUICTask(final String query, final
PSICQUICRestClient client,
final CyNetworkManager manager, final RegistryManager
registryManager, final SearchRecoredsTask searchTask,
- final SearchMode mode, final
CreateNetworkViewTaskFactory createViewTaskFactory) {
+ final SearchMode mode, final
CreateNetworkViewTaskFactory createViewTaskFactory, final
PSIMI25VisualStyleBuilder vsBuilder,
+ final VisualMappingManager vmm) {
this.client = client;
this.manager = manager;
@@ -70,6 +79,9 @@
this.searchTask = searchTask;
this.mode = mode;
this.createViewTaskFactory = createViewTaskFactory;
+
+ this.vmm = vmm;
+ this.vsBuilder = vsBuilder;
}
@Override
@@ -118,8 +130,24 @@
return;
}
- if (!canceled)
+ if (!canceled) {
+ // Check Visual Style exists or not
+ VisualStyle psiStyle = null;
+ for(VisualStyle style: vmm.getAllVisualStyles()) {
+
if(style.getTitle().equals(PSIMI25VisualStyleBuilder.DEF_VS_NAME)) {
+ psiStyle = style;
+ break;
+ }
+ }
+
+ if(psiStyle == null) {
+ psiStyle = vsBuilder.getVisualStyle();
+ vmm.addVisualStyle(psiStyle);
+ }
+ vmm.setCurrentVisualStyle(psiStyle);
+
insertTasksAfterCurrentTask(createViewTaskFactory.createTaskIterator(result.values()));
+ }
}
@Override
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/PSICQUICSearchUI.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/PSICQUICSearchUI.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/PSICQUICSearchUI.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -29,7 +29,9 @@
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.task.create.CreateNetworkViewTaskFactory;
import org.cytoscape.util.swing.OpenBrowser;
+import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient;
+import org.cytoscape.webservice.psicquic.PSIMI25VisualStyleBuilder;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient.SearchMode;
import org.cytoscape.webservice.psicquic.RegistryManager;
import org.cytoscape.webservice.psicquic.task.SearchRecoredsTask;
@@ -89,15 +91,21 @@
private final OpenBrowser openBrowserUtil;
+ private final PSIMI25VisualStyleBuilder vsBuilder;
+ private final VisualMappingManager vmm;
+
public PSICQUICSearchUI(final CyNetworkManager networkManager, final
RegistryManager regManager,
final PSICQUICRestClient client, final TaskManager<?,
?> tmManager,
- final CreateNetworkViewTaskFactory
createViewTaskFactory, final OpenBrowser openBrowserUtil) {
+ final CreateNetworkViewTaskFactory
createViewTaskFactory, final OpenBrowser openBrowserUtil,
+ final PSIMI25VisualStyleBuilder vsBuilder, final
VisualMappingManager vmm) {
this.regManager = regManager;
this.client = client;
this.taskManager = tmManager;
this.networkManager = networkManager;
this.createViewTaskFactory = createViewTaskFactory;
this.openBrowserUtil = openBrowserUtil;
+ this.vmm = vmm;
+ this.vsBuilder = vsBuilder;
init();
}
@@ -224,7 +232,7 @@
// Source Status
this.statesPanel = new SourceStatusPanel("", client,
regManager, networkManager, null, taskManager, mode,
- createViewTaskFactory);
+ createViewTaskFactory, vsBuilder, vmm);
this.add(statesPanel, BorderLayout.SOUTH);
statesPanel.enableComponents(false);
@@ -293,7 +301,7 @@
final Map<String, Long> result = searchTask.getResult();
remove(statesPanel);
statesPanel = new
SourceStatusPanel(queryArea.getText(), client, regManager, networkManager,
result,
- taskManager, mode,
createViewTaskFactory);
+ taskManager, mode,
createViewTaskFactory, vsBuilder, vmm);
add(statesPanel, BorderLayout.SOUTH);
statesPanel.sort();
@@ -335,7 +343,7 @@
remove(statesPanel);
statesPanel = new SourceStatusPanel(queryArea.getText(),
client, regManager, networkManager, null, taskManager,
- mode, createViewTaskFactory);
+ mode, createViewTaskFactory, vsBuilder, vmm);
add(statesPanel, BorderLayout.SOUTH);
Window parentWindow = ((Window) getRootPane().getParent());
parentWindow.pack();
Modified:
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/SourceStatusPanel.java
===================================================================
---
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/SourceStatusPanel.java
2012-07-27 23:45:23 UTC (rev 30028)
+++
core3/impl/trunk/webservice-psicquic-client-impl/src/main/java/org/cytoscape/webservice/psicquic/ui/SourceStatusPanel.java
2012-07-28 00:43:40 UTC (rev 30029)
@@ -28,7 +28,9 @@
import org.cytoscape.model.CyNetworkManager;
import org.cytoscape.task.create.CreateNetworkViewTaskFactory;
+import org.cytoscape.view.vizmap.VisualMappingManager;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient;
+import org.cytoscape.webservice.psicquic.PSIMI25VisualStyleBuilder;
import org.cytoscape.webservice.psicquic.PSICQUICRestClient.SearchMode;
import org.cytoscape.webservice.psicquic.RegistryManager;
import org.cytoscape.webservice.psicquic.task.ImportNetworkFromPSICQUICTask;
@@ -54,6 +56,9 @@
private final CreateNetworkViewTaskFactory createViewTaskFactory;
+ private final PSIMI25VisualStyleBuilder vsBuilder;
+ private final VisualMappingManager vmm;
+
private int interactionsFound = 0;
/**
@@ -62,7 +67,8 @@
*/
public SourceStatusPanel(final String query, final PSICQUICRestClient
client, final RegistryManager manager,
final CyNetworkManager networkManager, final
Map<String, Long> result, final TaskManager taskManager,
- SearchMode mode, final CreateNetworkViewTaskFactory
createViewTaskFactory) {
+ SearchMode mode, final CreateNetworkViewTaskFactory
createViewTaskFactory, final PSIMI25VisualStyleBuilder vsBuilder,
+ final VisualMappingManager vmm) {
this.manager = manager;
this.client = client;
this.query = query;
@@ -70,6 +76,8 @@
this.taskManager = taskManager;
this.mode = mode;
this.createViewTaskFactory = createViewTaskFactory;
+ this.vmm = vmm;
+ this.vsBuilder = vsBuilder;
setTableModel(result);
@@ -346,7 +354,7 @@
// Execute Import Task
final ImportNetworkFromPSICQUICTask networkTask = new
ImportNetworkFromPSICQUICTask(query, client,
- networkManager, manager, sourceURLs, mode,
createViewTaskFactory, mergeNetwork);
+ networkManager, manager, sourceURLs, mode,
createViewTaskFactory, vsBuilder, vmm, mergeNetwork);
taskManager.execute(new TaskIterator(networkTask));
--
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.