You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(7) |
Aug
|
Sep
(46) |
Oct
(102) |
Nov
(10) |
Dec
(21) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(1) |
Feb
(3) |
Mar
(14) |
Apr
(9) |
May
(12) |
Jun
(4) |
Jul
(40) |
Aug
(60) |
Sep
(38) |
Oct
(2) |
Nov
(1) |
Dec
(42) |
2008 |
Jan
(23) |
Feb
(29) |
Mar
(107) |
Apr
(27) |
May
(3) |
Jun
(1) |
Jul
(15) |
Aug
(7) |
Sep
(19) |
Oct
|
Nov
(2) |
Dec
|
2009 |
Jan
(36) |
Feb
(4) |
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(15) |
Jul
(30) |
Aug
(32) |
Sep
(11) |
Oct
(21) |
Nov
(12) |
Dec
(15) |
2010 |
Jan
(29) |
Feb
(9) |
Mar
(25) |
Apr
|
May
(7) |
Jun
(5) |
Jul
(21) |
Aug
(32) |
Sep
(10) |
Oct
(8) |
Nov
(29) |
Dec
(8) |
2011 |
Jan
(9) |
Feb
(35) |
Mar
(11) |
Apr
(4) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(30) |
2012 |
Jan
(5) |
Feb
(7) |
Mar
(10) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <bh...@us...> - 2006-10-13 23:23:17
|
Revision: 278 http://svn.sourceforge.net/cishell/?rev=278&view=rev Author: bh2 Date: 2006-10-13 16:23:12 -0700 (Fri, 13 Oct 2006) Log Message: ----------- fixed a thread locking problem (though it may cause other problems later) Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/AlgorithmAction.java Modified: trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/AlgorithmAction.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/AlgorithmAction.java 2006-10-13 23:22:22 UTC (rev 277) +++ trunk/clients/gui/org.cishell.reference.gui.menumanager/src/org/cishell/reference/gui/menumanager/menu/AlgorithmAction.java 2006-10-13 23:23:12 UTC (rev 278) @@ -153,17 +153,16 @@ for (int i=0; i < classes.length; i++) { if (classes[i].equals(DataValidator.class.getName())) { DataValidator validator = (DataValidator) bContext.getService(ref); - - synchronized(this) { - for (int j=0; j < data.length; j++) { - if (converters[j] != null && converters[j].length > 0) { - data[j] = converters[j][0].convert(data[j]); - converters[j] = null; - } + + //FIXME: Could cause concurrency problems... + for (int j=0; j < data.length; j++) { + if (converters[j] != null && converters[j].length > 0) { + data[j] = converters[j][0].convert(data[j]); + converters[j] = null; } - - valid = validator.validate(data); } + + valid = validator.validate(data); } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2006-10-13 23:22:25
|
Revision: 277 http://svn.sourceforge.net/cishell/?rev=277&view=rev Author: bh2 Date: 2006-10-13 16:22:22 -0700 (Fri, 13 Oct 2006) Log Message: ----------- got rid of some debug code Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-13 23:21:31 UTC (rev 276) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-13 23:22:22 UTC (rev 277) @@ -1,8 +1,6 @@ package org.cishell.reference.gui.persistence.save; import java.util.Dictionary; -import java.util.Set; -import java.util.TreeSet; import org.cishell.framework.CIShellContext; import org.cishell.framework.algorithm.Algorithm; @@ -12,8 +10,6 @@ import org.cishell.service.guibuilder.GUIBuilderService; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; -import org.osgi.framework.Constants; -import org.osgi.framework.ServiceReference; /** * Save algorithm for persisting a data object @@ -59,19 +55,6 @@ //This only checks the first Data in the array final Converter[] converters = conversionManager.findConverters(data[0], "file-ext:*"); - Set conversionSet = new TreeSet(); - for (int i=0; i < converters.length; i++) { - if (!conversionSet.contains(converters[i])) { - conversionSet.add(converters[i]); - - ServiceReference[] refs = converters[i].getConverterChain(); - for (int j=0; j < refs.length; j++) { - System.out.print(refs[j].getProperty(Constants.SERVICE_PID+"->")); - } - - } - } - if (converters.length < 1) { guiBuilder.showError("No Converters", "No valid converters for data type: " + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2006-10-13 23:21:35
|
Revision: 276 http://svn.sourceforge.net/cishell/?rev=276&view=rev Author: bh2 Date: 2006-10-13 16:21:31 -0700 (Fri, 13 Oct 2006) Log Message: ----------- fixed most problems with data conversion service, except for see line 190 Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 20:25:17 UTC (rev 275) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 23:21:31 UTC (rev 276) @@ -139,6 +139,10 @@ for (int i=0; i < converters.length; i++) { String format = (String) converters[i].getProperties().get(OUT_DATA); + //tmp + String inFormat = (String) converters[i].getProperties().get(IN_DATA); + System.out.println("Converter:"+converters.length+":"+ inFormat + "->" + format + "->" + outFormat); + if (!formats.contains(format)) { String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + "(!("+REMOTE+"=*))" + @@ -153,7 +157,7 @@ for (int j=0; j < refs.length; j++) { List chain = new ArrayList(Arrays.asList( converters[i].getConverterChain())); - chain.add(refs[i]); + chain.add(refs[j]); ServiceReference[] newChain = (ServiceReference[]) chain.toArray(new ServiceReference[0]); @@ -171,16 +175,22 @@ return (Converter[]) newConverters.toArray(new Converter[0]); } - + private Converter[] getConverters(String inFormat, String outFormat) { String inFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" - + "(" + IN_DATA + "=" + inFormat + ") " + "(" + OUT_DATA - + "=*)" + "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; + + "("+IN_DATA+"="+inFormat+") " + "("+OUT_DATA+"=*)" + + "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; String outFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" - + "(" + IN_DATA + "=*) " + "(" + OUT_DATA + "=" + outFormat - + ")" + "(!("+OUT_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; - + + "("+IN_DATA+"=*) " + "("+OUT_DATA+"="+outFormat+")" + + "(!(" + REMOTE + "=*)))"; + + Collection converterList = new HashSet(); + + //TODO: Check to see if inFormat matches the outFormat (for example: + //in=file:text/graphml out=file:* If so, need to add a null converter + //(w/ 0 sized servicereference array) to the converterList + try { ServiceReference[] inRefs = bContext.getServiceReferences( AlgorithmFactory.class.getName(), inFilter); @@ -199,7 +209,7 @@ .getProperty(AlgorithmProperty.OUT_DATA)); } - Collection converterList = new HashSet(); + for (Iterator i = inFileTypeSet.iterator(); i.hasNext();) { String srcDataType = (String) i.next(); for (Iterator j = outFileTypeSet.iterator(); j.hasNext();) { @@ -209,12 +219,11 @@ converterList.add(converter); } } - return (Converter[]) converterList.toArray(new Converter[0]); } } catch (InvalidSyntaxException e) { e.printStackTrace(); } - return new Converter[0]; + return (Converter[]) converterList.toArray(new Converter[0]); } private Converter getConverter(String inType, String outType) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bh...@us...> - 2006-10-13 20:25:24
|
Revision: 275 http://svn.sourceforge.net/cishell/?rev=275&view=rev Author: bh2 Date: 2006-10-13 13:25:17 -0700 (Fri, 13 Oct 2006) Log Message: ----------- made file-ext:* not show up on the conversion graph Modified Paths: -------------- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java 2006-10-13 17:22:41 UTC (rev 274) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java 2006-10-13 20:25:17 UTC (rev 275) @@ -128,7 +128,8 @@ ServiceReference[] otherServiceReference = ((Converter)o).getConverterChain(); if (refs.length == otherServiceReference.length) { for (int i = 0; i < otherServiceReference.length; i++) { - if (refs[i].getProperty(Constants.SERVICE_ID).equals(otherServiceReference[i].getProperty(Constants.SERVICE_ID))) { + if (refs[i].getProperty(Constants.SERVICE_ID).equals( + otherServiceReference[i].getProperty(Constants.SERVICE_ID))) { equals = true; } else { equals = false; Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 17:22:41 UTC (rev 274) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 20:25:17 UTC (rev 275) @@ -53,7 +53,6 @@ private BundleContext bContext; private CIShellContext ciContext; - private Map dataTypeToVertex; private Graph graph; @@ -62,9 +61,11 @@ this.ciContext = ciContext; String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + - "("+IN_DATA+"=*) " + - "("+OUT_DATA+"=*)" + - "(!("+REMOTE+"=*)))"; + "("+IN_DATA+"=*) " + + "("+OUT_DATA+"=*)" + + "(!("+REMOTE+"=*))" + + "(!("+IN_DATA+"=file-ext:*))" + + "(!("+OUT_DATA+"=file-ext:*)))"; try { this.bContext.addServiceListener(this, filter); @@ -81,13 +82,15 @@ private void assembleGraph() { graph = new DirectedSparseGraph(); - dataTypeToVertex = new Hashtable(); + dataTypeToVertex = new Hashtable(); try { String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + "("+IN_DATA+"=*) " + "("+OUT_DATA+"=*)" + - "(!("+REMOTE+"=*)))"; + "(!("+REMOTE+"=*))" + + "(!("+IN_DATA+"=file-ext:*))" + + "(!("+OUT_DATA+"=file-ext:*)))"; ServiceReference[] refs = bContext.getServiceReferences( AlgorithmFactory.class.getName(), filter); @@ -108,28 +111,75 @@ } /** - * TODO: Only provides a direct conversion, need to improve - * * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String) */ public Converter[] findConverters(String inFormat, String outFormat) { - //saveGraph(); + saveGraph(); if (inFormat != null && inFormat.length() > 0 && outFormat != null && outFormat.length() > 0) { - return getConverters(inFormat, outFormat); + Converter[] converters = null; + + if (outFormat.startsWith("file-ext:")) { + converters = getConverters(inFormat, "file:*"); + converters = addFinalStepConversions(converters, outFormat); + } else { + converters = getConverters(inFormat, outFormat); + } + + return converters; } return new Converter[0]; } + + private Converter[] addFinalStepConversions(Converter[] converters, String outFormat) { + Collection newConverters = new HashSet(); + + Set formats = new HashSet(); + for (int i=0; i < converters.length; i++) { + String format = (String) converters[i].getProperties().get(OUT_DATA); + + if (!formats.contains(format)) { + String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + + "(!("+REMOTE+"=*))" + + "("+IN_DATA+"="+format+")" + + "("+OUT_DATA+"="+outFormat+"))"; + + try { + ServiceReference[] refs = bContext.getServiceReferences( + AlgorithmFactory.class.getName(), filter); + + if (refs != null && refs.length > 0) { + for (int j=0; j < refs.length; j++) { + List chain = new ArrayList(Arrays.asList( + converters[i].getConverterChain())); + chain.add(refs[i]); + + ServiceReference[] newChain = (ServiceReference[]) + chain.toArray(new ServiceReference[0]); + + newConverters.add(new ConverterImpl(bContext, ciContext, newChain)); + } + + formats.add(format); + } + } catch (InvalidSyntaxException e) { + e.printStackTrace(); + } + } + } + + return (Converter[]) newConverters.toArray(new Converter[0]); + } private Converter[] getConverters(String inFormat, String outFormat) { String inFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" + "(" + IN_DATA + "=" + inFormat + ") " + "(" + OUT_DATA - + "=*)" + "(!(" + REMOTE + "=*)))"; + + "=*)" + "(!("+IN_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; String outFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" + "(" + IN_DATA + "=*) " + "(" + OUT_DATA + "=" + outFormat - + ")" + "(!(" + REMOTE + "=*)))"; + + ")" + "(!("+OUT_DATA+"=file-ext:*))" + "(!(" + REMOTE + "=*)))"; try { ServiceReference[] inRefs = bContext.getServiceReferences( @@ -162,7 +212,6 @@ return (Converter[]) converterList.toArray(new Converter[0]); } } catch (InvalidSyntaxException e) { - // TODO Auto-generated catch block e.printStackTrace(); } return new Converter[0]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bea...@us...> - 2006-10-13 17:22:46
|
Revision: 274 http://svn.sourceforge.net/cishell/?rev=274&view=rev Author: bearsfan Date: 2006-10-13 10:22:41 -0700 (Fri, 13 Oct 2006) Log Message: ----------- added multi step conversions. Modified Paths: -------------- trunk/core/org.cishell.reference/META-INF/MANIFEST.MF trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java Modified: trunk/core/org.cishell.reference/META-INF/MANIFEST.MF =================================================================== --- trunk/core/org.cishell.reference/META-INF/MANIFEST.MF 2006-10-13 17:22:17 UTC (rev 273) +++ trunk/core/org.cishell.reference/META-INF/MANIFEST.MF 2006-10-13 17:22:41 UTC (rev 274) @@ -19,3 +19,4 @@ org.cishell.reference.app.service.scheduler, org.cishell.reference.service.conversion Eclipse-LazyStart: true +Require-Bundle: edu.uci.ics.jung Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java 2006-10-13 17:22:17 UTC (rev 273) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/ConverterImpl.java 2006-10-13 17:22:41 UTC (rev 274) @@ -33,7 +33,7 @@ * * @author Bruce Herr (bh...@bh...) */ -public class ConverterImpl implements Converter, AlgorithmFactory, AlgorithmProperty { +public class ConverterImpl implements Converter, AlgorithmFactory, AlgorithmProperty, Comparable { private ServiceReference[] refs; private BundleContext bContext; private Dictionary props; @@ -121,6 +121,25 @@ public MetaTypeProvider createParameters(Data[] dm) { return null; } + + public boolean equals(Object o) { + boolean equals = false; + if (o instanceof Converter) { + ServiceReference[] otherServiceReference = ((Converter)o).getConverterChain(); + if (refs.length == otherServiceReference.length) { + for (int i = 0; i < otherServiceReference.length; i++) { + if (refs[i].getProperty(Constants.SERVICE_ID).equals(otherServiceReference[i].getProperty(Constants.SERVICE_ID))) { + equals = true; + } else { + equals = false; + break; + } + } + } + } + + return equals; + } private class ConverterAlgorithm implements Algorithm { Data[] inDM; @@ -151,4 +170,8 @@ return dm; } } + + public int compareTo(Object o) { + return equals(o) ? 0 : 1; + } } Modified: trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java =================================================================== --- trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 17:22:17 UTC (rev 273) +++ trunk/core/org.cishell.reference/src/org/cishell/reference/service/conversion/DataConversionServiceImpl.java 2006-10-13 17:22:41 UTC (rev 274) @@ -14,12 +14,15 @@ package org.cishell.reference.service.conversion; import java.io.File; +import java.util.AbstractList; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; +import java.util.Hashtable; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; import org.cishell.framework.CIShellContext; @@ -29,48 +32,166 @@ import org.cishell.service.conversion.Converter; import org.cishell.service.conversion.DataConversionService; import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceEvent; +import org.osgi.framework.ServiceListener; import org.osgi.framework.ServiceReference; -public class DataConversionServiceImpl implements DataConversionService, AlgorithmProperty { +import edu.uci.ics.jung.algorithms.shortestpath.DijkstraShortestPath; +import edu.uci.ics.jung.graph.Edge; +import edu.uci.ics.jung.graph.Graph; +import edu.uci.ics.jung.graph.Vertex; +import edu.uci.ics.jung.graph.impl.DirectedSparseEdge; +import edu.uci.ics.jung.graph.impl.DirectedSparseGraph; +import edu.uci.ics.jung.graph.impl.SparseVertex; +import edu.uci.ics.jung.io.GraphMLFile; +import edu.uci.ics.jung.utils.UserDataContainer; + +public class DataConversionServiceImpl implements DataConversionService, AlgorithmProperty, ServiceListener { + public final static String SERVICE_LIST = "SERVICE_LIST"; + private BundleContext bContext; private CIShellContext ciContext; + private Map dataTypeToVertex; + private Graph graph; + public DataConversionServiceImpl(BundleContext bContext, CIShellContext ciContext) { this.bContext = bContext; this.ciContext = ciContext; + + String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + + "("+IN_DATA+"=*) " + + "("+OUT_DATA+"=*)" + + "(!("+REMOTE+"=*)))"; + + try { + this.bContext.addServiceListener(this, filter); + } catch (InvalidSyntaxException e) { + e.printStackTrace(); + } + assembleGraph(); } /** - * TODO: Only provides a direct conversion, need to improve - * - * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String) + * Assemble the directed graph of converters + * */ - public Converter[] findConverters(String inFormat, String outFormat) { + private void assembleGraph() { + graph = new DirectedSparseGraph(); + + dataTypeToVertex = new Hashtable(); + try { String filter = "(&("+ALGORITHM_TYPE+"="+TYPE_CONVERTER+")" + - "("+IN_DATA+"="+inFormat+") " + - "("+OUT_DATA+"="+outFormat+")" + + "("+IN_DATA+"=*) " + + "("+OUT_DATA+"=*)" + "(!("+REMOTE+"=*)))"; ServiceReference[] refs = bContext.getServiceReferences( AlgorithmFactory.class.getName(), filter); - if (refs != null && refs.length > 0) { - Converter[] converters = new Converter[refs.length]; - for (int i=0; i < converters.length; i++) { - converters[i] = new ConverterImpl(bContext, ciContext, new ServiceReference[]{refs[i]}); - } - - return converters; - } else { - return new Converter[0]; - } + if (refs != null) { + for (int i = 0; i < refs.length; ++i) { + String inData = (String) refs[i] + .getProperty(AlgorithmProperty.IN_DATA); + String outData = (String) refs[i] + .getProperty(AlgorithmProperty.OUT_DATA); + + addServiceReference(inData, outData, refs[i]); + } + } } catch (InvalidSyntaxException e) { throw new RuntimeException(e); } + } + + /** + * TODO: Only provides a direct conversion, need to improve + * + * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String) + */ + public Converter[] findConverters(String inFormat, String outFormat) { + //saveGraph(); + if (inFormat != null && inFormat.length() > 0 && + outFormat != null && outFormat.length() > 0) { + + return getConverters(inFormat, outFormat); + } + return new Converter[0]; } + private Converter[] getConverters(String inFormat, String outFormat) { + String inFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" + + "(" + IN_DATA + "=" + inFormat + ") " + "(" + OUT_DATA + + "=*)" + "(!(" + REMOTE + "=*)))"; + + String outFilter = "(&(" + ALGORITHM_TYPE + "=" + TYPE_CONVERTER + ")" + + "(" + IN_DATA + "=*) " + "(" + OUT_DATA + "=" + outFormat + + ")" + "(!(" + REMOTE + "=*)))"; + + try { + ServiceReference[] inRefs = bContext.getServiceReferences( + AlgorithmFactory.class.getName(), inFilter); + ServiceReference[] outRefs = bContext.getServiceReferences( + AlgorithmFactory.class.getName(), outFilter); + + if (inRefs != null && outRefs != null) { + Set inFileTypeSet = new HashSet(); + for (int i = 0; i < inRefs.length; ++i) { + inFileTypeSet.add(inRefs[i] + .getProperty(AlgorithmProperty.IN_DATA)); + } + Set outFileTypeSet = new HashSet(); + for (int i = 0; i < outRefs.length; ++i) { + outFileTypeSet.add(outRefs[i] + .getProperty(AlgorithmProperty.OUT_DATA)); + } + + Collection converterList = new HashSet(); + for (Iterator i = inFileTypeSet.iterator(); i.hasNext();) { + String srcDataType = (String) i.next(); + for (Iterator j = outFileTypeSet.iterator(); j.hasNext();) { + Converter converter = getConverter( srcDataType, + (String) j.next()); + if (converter != null) + converterList.add(converter); + } + } + return (Converter[]) converterList.toArray(new Converter[0]); + } + } catch (InvalidSyntaxException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return new Converter[0]; + } + + private Converter getConverter(String inType, String outType) { + Vertex srcVertex = (Vertex)dataTypeToVertex.get(inType); + Vertex tgtVertex = (Vertex)dataTypeToVertex.get(outType); + + if (srcVertex != null && tgtVertex != null) { + DijkstraShortestPath shortestPathAlg = new DijkstraShortestPath(graph); + List edgeList = shortestPathAlg.getPath(srcVertex, tgtVertex); + + if (edgeList.size() > 0) { + ServiceReference[] serviceReferenceArray = new ServiceReference[edgeList + .size()]; + for (int i = 0; i < serviceReferenceArray.length; ++i) { + Edge edge = (Edge) edgeList.get(i); + AbstractList converterList = (AbstractList) edge + .getUserDatum(SERVICE_LIST); + serviceReferenceArray[i] = (ServiceReference) converterList + .get(0); + } + return new ConverterImpl(bContext, ciContext, serviceReferenceArray); + } + } + return null; + } + /** * @see org.cishell.service.conversion.DataConversionService#findConverters(java.lang.String, java.lang.String, int, java.lang.String) */ @@ -93,11 +214,11 @@ String format = data.getFormat(); - List list = new ArrayList(); + Set set = new HashSet(); Converter[] converters = new Converter[0]; if (format != null) { converters = findConverters(format, outFormat); - list.addAll(Arrays.asList(converters)); + set.addAll(new HashSet(Arrays.asList(converters))); } if (!(data.getData() instanceof File) && data.getData() != null) { @@ -105,11 +226,11 @@ while (iter.hasNext()) { Class c = (Class) iter.next(); converters = findConverters(c.getName(), outFormat); - list.addAll(Arrays.asList(converters)); + set.addAll(new HashSet(Arrays.asList(converters))); } } - return (Converter[]) list.toArray(new Converter[0]); + return (Converter[]) set.toArray(new Converter[0]); } protected Collection getClassesFor(Class clazz) { @@ -151,4 +272,101 @@ return inDM; } + + + public void serviceChanged(ServiceEvent event) { + ServiceReference inServiceRef = event.getServiceReference(); + + String inDataType = (String)inServiceRef.getProperty(AlgorithmProperty.IN_DATA); + String outDataType = (String)inServiceRef.getProperty(AlgorithmProperty.OUT_DATA); + + if (event.getType() == ServiceEvent.MODIFIED) { + removeServiceReference(inDataType, outDataType, inServiceRef); + addServiceReference(inDataType, outDataType, inServiceRef); + } + else if(event.getType() == ServiceEvent.REGISTERED) { + addServiceReference(inDataType, outDataType, inServiceRef); + } + else if(event.getType() == ServiceEvent.UNREGISTERING) { + removeServiceReference(inDataType, outDataType, inServiceRef); + } + } + + private void removeServiceReference(String srcDataType, String tgtDataType, ServiceReference serviceReference) { + if (srcDataType != null && tgtDataType != null) { + Vertex srcVertex = (Vertex) dataTypeToVertex.get(srcDataType); + Vertex tgtVertex = (Vertex) dataTypeToVertex.get(tgtDataType); + String pid = (String) serviceReference + .getProperty(Constants.SERVICE_PID); + + if (srcVertex != null && tgtVertex != null) { + Edge edge = srcVertex.findEdge(tgtVertex); + if (edge != null) { + AbstractList serviceList = (AbstractList) edge + .getUserDatum(SERVICE_LIST); + for (Iterator iterator = serviceList.iterator(); iterator + .hasNext();) { + ServiceReference currentServiceReference = (ServiceReference) iterator + .next(); + String currentPid = (String) currentServiceReference + .getProperty(Constants.SERVICE_PID); + + if (pid.equals(currentPid)) { + iterator.remove(); + } + } + if (serviceList.isEmpty()) { + graph.removeEdge(edge); + } + } + } + } + } + + private void addServiceReference(String srcDataType, String tgtDataType, ServiceReference serviceReference) { + if (srcDataType != null && srcDataType.length() > 0 + && tgtDataType != null && tgtDataType.length() > 0) { + Vertex srcVertex = getVertex(srcDataType); + Vertex tgtVertex = getVertex(tgtDataType); + + removeServiceReference(srcDataType, tgtDataType, serviceReference); + + Edge directedEdge = srcVertex.findEdge(tgtVertex); + if (directedEdge == null) { + directedEdge = new DirectedSparseEdge(srcVertex, tgtVertex); + graph.addEdge(directedEdge); + } + + AbstractList serviceList = (AbstractList) directedEdge.getUserDatum(SERVICE_LIST); + if (serviceList == null) { + serviceList = new ArrayList(); + serviceList.add(serviceReference); + } + directedEdge.setUserDatum(SERVICE_LIST, serviceList, + new UserDataContainer.CopyAction.Shared()); + } + } + + private Vertex getVertex(String dataType) { + Vertex vertex = (SparseVertex)dataTypeToVertex.get(dataType); + if (vertex== null) { + vertex = new SparseVertex(); + vertex.addUserDatum("label", dataType, + new UserDataContainer.CopyAction.Shared()); + graph.addVertex(vertex); + dataTypeToVertex.put(dataType, vertex); + } + return vertex; + } + + private void saveGraph() { + GraphMLFile writer = new GraphMLFile(); + Graph g = (Graph)graph.copy(); + for (Iterator i = g.getEdges().iterator(); i.hasNext();) { + Edge e = (Edge)i.next(); + e.removeUserDatum(SERVICE_LIST); + } + writer.save(g, System.getProperty("user.home") + File.separator + "convertGraph.xml"); + + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bea...@us...> - 2006-10-13 17:22:23
|
Revision: 273 http://svn.sourceforge.net/cishell/?rev=273&view=rev Author: bearsfan Date: 2006-10-13 10:22:17 -0700 (Fri, 13 Oct 2006) Log Message: ----------- getsaveservice and checked for current UI thread Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.datamanager/META-INF/MANIFEST.MF trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/META-INF/MANIFEST.MF =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.datamanager/META-INF/MANIFEST.MF 2006-10-13 17:18:53 UTC (rev 272) +++ trunk/clients/gui/org.cishell.reference.gui.datamanager/META-INF/MANIFEST.MF 2006-10-13 17:22:17 UTC (rev 273) @@ -10,6 +10,7 @@ Eclipse-LazyStart: true Import-Package: org.cishell.app.service.datamanager, org.cishell.framework, + org.cishell.framework.algorithm, org.cishell.framework.data, org.osgi.service.log;version="1.3.0" Export-Package: org.cishell.reference.gui.datamanager Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java 2006-10-13 17:18:53 UTC (rev 272) +++ trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java 2006-10-13 17:22:17 UTC (rev 273) @@ -16,6 +16,7 @@ import java.util.Dictionary; import java.util.HashMap; import java.util.HashSet; +import java.util.Hashtable; import java.util.Iterator; import java.util.Map; import java.util.Set; @@ -23,6 +24,8 @@ import org.cishell.app.service.datamanager.DataManagerListener; import org.cishell.app.service.datamanager.DataManagerService; +import org.cishell.framework.algorithm.Algorithm; +import org.cishell.framework.algorithm.AlgorithmFactory; import org.cishell.framework.data.Data; import org.cishell.framework.data.DataProperty; import org.eclipse.jface.viewers.ISelection; @@ -84,9 +87,13 @@ private Menu menu; private Map dataToDataGUIItemMap; + + private AlgorithmFactory saveFactory; private DiscardListener discardListener; + private SaveListener saveListener; + public AbstractDataManagerView(String brandPluginID) { manager = Activator.getDataManagerService(); this.brandPluginID = brandPluginID; @@ -124,7 +131,14 @@ MenuItem saveItem = new MenuItem(menu, SWT.PUSH); saveItem.setText("Save"); - saveItem.setEnabled(false); + this.saveFactory = Activator.getSaveService(); + if (this.saveFactory != null) { + saveListener = new SaveListener(); + saveItem.addListener(SWT.Selection, saveListener); + } + else { + saveItem.setEnabled(false); + } MenuItem renameItem = new MenuItem(menu, SWT.PUSH); renameItem.setText("Rename"); @@ -191,7 +205,8 @@ // update the ModelManager with the new selection final Set selection = new HashSet(); selection.add(data); - Display.getDefault().syncExec(new Runnable() { + + guiRun(new Runnable() { public void run() { if (!tree.isDisposed()) { // update the TreeView @@ -206,6 +221,14 @@ } }); } + + private void guiRun(Runnable run) { + if (Thread.currentThread() == Display.getDefault().getThread()) { + run.run(); + } else { + Display.getDefault().syncExec(run); + } + } public void dataLabelChanged(Data data, String label) { if (data != null && label != null) { @@ -231,7 +254,7 @@ public void dataSelected(final Data[] data) { if (data != null) { //setFocus(); - Display.getDefault().syncExec(new Runnable() { + guiRun(new Runnable() { public void run() { Set itemSet = new HashSet(); for (int i = 0; i < data.length; ++i) { @@ -396,6 +419,20 @@ } } + + private class SaveListener implements Listener { + public void handleEvent(Event event) { + if (AbstractDataManagerView.this.saveFactory != null) { + TreeItem[] selection = AbstractDataManagerView.this.tree.getSelection(); + Data data = ((DataGUIItem)selection[0].getData()).getModel(); + Algorithm algorithm = AbstractDataManagerView.this.saveFactory.createAlgorithm(new Data[]{data}, + new Hashtable(), + Activator.getCIShellContext()); + algorithm.execute(); + } + } + } + private class DiscardListener implements Listener { public void handleEvent(Event event) { TreeItem[] selection = AbstractDataManagerView.this.tree Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java 2006-10-13 17:18:53 UTC (rev 272) +++ trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java 2006-10-13 17:22:17 UTC (rev 273) @@ -1,8 +1,14 @@ package org.cishell.reference.gui.datamanager; import org.cishell.app.service.datamanager.DataManagerService; +import org.cishell.framework.CIShellContext; +import org.cishell.framework.LocalCIShellContext; +import org.cishell.framework.algorithm.AlgorithmFactory; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; import org.osgi.service.log.LogService; /** @@ -65,4 +71,24 @@ return log; } + + protected static AlgorithmFactory getSaveService() { + ServiceReference[] refs; + try { + refs = context.getServiceReferences(AlgorithmFactory.class.getName(), + "(&("+Constants.SERVICE_PID+"=org.cishell.reference.gui.persistence.save.Save))"); + if (refs != null && refs.length > 0) { + return (AlgorithmFactory) context.getService(refs[0]); + } else { + return null; + } + } catch (InvalidSyntaxException e) { + e.printStackTrace(); + return null; + } + } + + protected static CIShellContext getCIShellContext() { + return new LocalCIShellContext(context); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bea...@us...> - 2006-10-13 17:19:06
|
Revision: 272 http://svn.sourceforge.net/cishell/?rev=272&view=rev Author: bearsfan Date: 2006-10-13 10:18:53 -0700 (Fri, 13 Oct 2006) Log Message: ----------- Checked for current thread, and debug print outs in the save plugin. Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java 2006-10-11 20:54:35 UTC (rev 271) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java 2006-10-13 17:18:53 UTC (rev 272) @@ -61,7 +61,13 @@ Display display = PlatformUI.getWorkbench().getDisplay(); DataUpdater dataUpdater = new DataUpdater (windows[0]); - display.syncExec(dataUpdater); + + if (Thread.currentThread() != display.getThread()) { + display.syncExec(dataUpdater); + } else { + dataUpdater.run(); + } + if (!dataUpdater.returnList.isEmpty()){ int size = dataUpdater.returnList.size(); returnDM = new Data[size]; Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-11 20:54:35 UTC (rev 271) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-13 17:18:53 UTC (rev 272) @@ -1,6 +1,8 @@ package org.cishell.reference.gui.persistence.save; import java.util.Dictionary; +import java.util.Set; +import java.util.TreeSet; import org.cishell.framework.CIShellContext; import org.cishell.framework.algorithm.Algorithm; @@ -10,6 +12,8 @@ import org.cishell.service.guibuilder.GUIBuilderService; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; +import org.osgi.framework.Constants; +import org.osgi.framework.ServiceReference; /** * Save algorithm for persisting a data object @@ -55,6 +59,19 @@ //This only checks the first Data in the array final Converter[] converters = conversionManager.findConverters(data[0], "file-ext:*"); + Set conversionSet = new TreeSet(); + for (int i=0; i < converters.length; i++) { + if (!conversionSet.contains(converters[i])) { + conversionSet.add(converters[i]); + + ServiceReference[] refs = converters[i].getConverterChain(); + for (int j=0; j < refs.length; j++) { + System.out.print(refs[j].getProperty(Constants.SERVICE_PID+"->")); + } + + } + } + if (converters.length < 1) { guiBuilder.showError("No Converters", "No valid converters for data type: " + Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java 2006-10-11 20:54:35 UTC (rev 271) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java 2006-10-13 17:18:53 UTC (rev 272) @@ -12,6 +12,7 @@ import org.cishell.framework.CIShellContext; import org.cishell.framework.algorithm.AlgorithmProperty; import org.cishell.framework.data.Data; +import org.cishell.reference.gui.common.AbstractDialog; import org.cishell.service.conversion.Converter; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.StyleRange; @@ -29,8 +30,6 @@ import org.eclipse.swt.widgets.List; import org.eclipse.swt.widgets.Shell; -import org.cishell.reference.gui.common.AbstractDialog; - /** * SaveDataChooser is a simple user interface to allow for selection * among several Persisters that support the selected model, in the event @@ -118,26 +117,32 @@ */ private void initConverterList() { for (int i = 0; i < converterArray.length; ++i) { - Dictionary dict = converterArray[i].getProperties(); + if (converterArray[i] != null) { + Dictionary dict = converterArray[i].getProperties(); - // get the name of the persister from the property map - String outData = (String) dict.get(AlgorithmProperty.LABEL); + // get the name of the persister from the property map + String outData = (String) dict.get(AlgorithmProperty.LABEL); - // if someone was sloppy enough to not provide a name, then use the - // name of the class instead. - if ((outData == null) || (outData.length() == 0)) { - outData = converterArray[i].getClass().getName(); - } + // if someone was sloppy enough to not provide a name, then use + // the + // name of the class instead. + if ((outData == null) || (outData.length() == 0)) { + outData = converterArray[i].getClass().getName(); + } - converterList.add(outData); - } + converterList.add(outData); + } + } } /** - * Sets up the DetailPane where the details from the Persister PropertyMaps are displayed. - * @param detailsGroup The detail pane to init - * @return A style of the text - */ + * Sets up the DetailPane where the details from the Persister PropertyMaps + * are displayed. + * + * @param detailsGroup + * The detail pane to init + * @return A style of the text + */ private StyledText initDetailPane(Group detailsGroup) { StyledText detailPane = new StyledText(detailsGroup, SWT.H_SCROLL | SWT.V_SCROLL); detailPane.setEditable(false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 271 http://svn.sourceforge.net/cishell/?rev=271&view=rev Author: bh2 Date: 2006-10-11 13:54:35 -0700 (Wed, 11 Oct 2006) Log Message: ----------- Updated the workspace plugin to make sure the top level menus show up in the order we would like to see File, Preprocessing, Modeling, Analysis, Visualization, Converters, Toolkits, Tools, Help Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.workspace/src/org/cishell/reference/gui/workspace/ApplicationActionBarAdvisor.java Modified: trunk/clients/gui/org.cishell.reference.gui.workspace/src/org/cishell/reference/gui/workspace/ApplicationActionBarAdvisor.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.workspace/src/org/cishell/reference/gui/workspace/ApplicationActionBarAdvisor.java 2006-10-11 20:46:08 UTC (rev 270) +++ trunk/clients/gui/org.cishell.reference.gui.workspace/src/org/cishell/reference/gui/workspace/ApplicationActionBarAdvisor.java 2006-10-11 20:54:35 UTC (rev 271) @@ -49,8 +49,18 @@ IWorkbenchActionConstants.M_FILE); MenuManager helpMenu = createMenu("&Help", IWorkbenchActionConstants.M_HELP); + + menuBar.add(fileMenu); - menuBar.add(fileMenu); + //Pre-adding menus so they show up in this order... + createAndAddMenu(menuBar, "Preprocessing", "preprocessing"); + createAndAddMenu(menuBar, "Modeling", "modeling"); + createAndAddMenu(menuBar, "Analysis", "analysis"); + createAndAddMenu(menuBar, "Visualization", "visualization"); + createAndAddMenu(menuBar, "Converters", "converters"); + createAndAddMenu(menuBar, "Toolkits", "toolkits"); + createAndAddMenu(menuBar, "Tools", "tools"); + menuBar.add(new GroupMarker("start")); menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS)); menuBar.add(new GroupMarker("end")); @@ -64,6 +74,11 @@ helpMenu.add(aboutAction); } + private void createAndAddMenu(IMenuManager menuBar, String text, String id) { + MenuManager menu = createMenu(text, id); + menuBar.add(menu); + } + private MenuManager createMenu(String text, String id) { MenuManager menu = new MenuManager(text, id); menu.add(new GroupMarker("start")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:46:15
|
Revision: 270 http://svn.sourceforge.net/cishell/?rev=270&view=rev Author: huangb Date: 2006-10-11 13:46:08 -0700 (Wed, 11 Oct 2006) Log Message: ----------- initial version Added Paths: ----------- trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.properties trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.xml Added: trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.properties =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.properties (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.properties 2006-10-11 20:46:08 UTC (rev 270) @@ -0,0 +1,7 @@ +menu_path=File/additions +label=View... +description=This algorithm does this and this... +in_data=java.lang.Object +out_data=null +service.pid=org.cishell.reference.gui.persistence.view.FileView +remoteable=true Added: trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.xml =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.xml (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/view.xml 2006-10-11 20:46:08 UTC (rev 270) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<component name="org.cishell.reference.gui.persistence.view.FileView.component" immediate="false"> + <implementation class="org.cishell.reference.gui.persistence.view.FileViewFactory"/> + <properties entry="OSGI-INF/view.properties"/> + <reference name="LOG" interface="org.osgi.service.log.LogService"/> + <reference name="MTS" interface="org.osgi.service.metatype.MetaTypeService"/> + + <service> + <provide interface= + "org.cishell.framework.algorithm.AlgorithmFactory"/> + </service> +</component> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:45:55
|
Revision: 269 http://svn.sourceforge.net/cishell/?rev=269&view=rev Author: huangb Date: 2006-10-11 13:45:46 -0700 (Wed, 11 Oct 2006) Log Message: ----------- initial version Added Paths: ----------- trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/l10n/ trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/l10n/bundle_en.properties trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/metatype/ trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/metatype/METADATA.XML Added: trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/l10n/bundle_en.properties =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/l10n/bundle_en.properties (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/l10n/bundle_en.properties 2006-10-11 20:45:46 UTC (rev 269) @@ -0,0 +1,7 @@ +#Localization variables for OSGI-INF/metatatype/METADATA.XML +# +#Samples: +#input=Input +#desc=Enter an integer (that will be converted to a string) +#name=Input->String +#name_desc=Converts inputted integer to string Added: trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/metatype/METADATA.XML =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/metatype/METADATA.XML (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/OSGI-INF/metatype/METADATA.XML 2006-10-11 20:45:46 UTC (rev 269) @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metatype:MetaData xmlns:metatype="http://www.osgi.org/xmlns/metatype/v1.0.0"> + <OCD name="FileView" id="org.cishell.reference.gui.persistence.view.FileView.OCD" + description=""> + </OCD> + <Designate pid="org.cishell.reference.gui.persistence.view.FileView"> + <Object ocdref="org.cishell.reference.gui.persistence.view.FileView.OCD" /> + </Designate> +</metatype:MetaData> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:45:26
|
Revision: 268 http://svn.sourceforge.net/cishell/?rev=268&view=rev Author: huangb Date: 2006-10-11 13:45:19 -0700 (Wed, 11 Oct 2006) Log Message: ----------- add view.xml to the Service-Component Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/META-INF/MANIFEST.MF Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/META-INF/MANIFEST.MF =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/META-INF/MANIFEST.MF 2006-10-11 20:44:18 UTC (rev 267) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/META-INF/MANIFEST.MF 2006-10-11 20:45:19 UTC (rev 268) @@ -18,7 +18,6 @@ org.osgi.service.metatype;version="1.1.0", org.osgi.service.prefs;version="1.1.0" X-AutoStart: true -Service-Component: OSGI-INF/load.xml, OSGI-INF/save.xml +Service-Component: OSGI-INF/load.xml, OSGI-INF/save.xml, OSGI-INF/view.xml Require-Bundle: org.eclipse.swt, org.eclipse.ui - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:44:24
|
Revision: 267 http://svn.sourceforge.net/cishell/?rev=267&view=rev Author: huangb Date: 2006-10-11 13:44:18 -0700 (Wed, 11 Oct 2006) Log Message: ----------- initial version Added Paths: ----------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileView.java trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileViewFactory.java trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/ViewDataChooser.java Added: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileView.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileView.java (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileView.java 2006-10-11 20:44:18 UTC (rev 267) @@ -0,0 +1,177 @@ +package org.cishell.reference.gui.persistence.view; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.channels.FileChannel; +import java.util.Dictionary; + +import org.osgi.service.log.LogService; + +import org.eclipse.swt.program.Program; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.Display; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.IWorkbenchWindow; + +import org.cishell.framework.CIShellContext; +import org.cishell.framework.algorithm.Algorithm; +import org.cishell.framework.data.Data; +import org.cishell.service.conversion.DataConversionService; +import org.cishell.service.guibuilder.GUIBuilderService; +import org.cishell.service.conversion.Converter; + +/* + * @author Weixia(Bonnie) Huang (hu...@in...) + */ +public class FileView implements Algorithm { + Data[] data; + Dictionary parameters; + CIShellContext context; + DataConversionService conversionManager; + static GUIBuilderService guiBuilder; + LogService logger; + + + public FileView(Data[] data, Dictionary parameters, CIShellContext context) { + this.data = data; + this.parameters = parameters; + this.context = context; + + conversionManager = (DataConversionService) context.getService( + DataConversionService.class.getName()); + + logger = (LogService)context.getService(LogService.class.getName()); + guiBuilder = (GUIBuilderService)context.getService(GUIBuilderService.class.getName()); + + } + public File getTempFile(){ + File tempFile; + + String tempPath = System.getProperty("java.io.tmpdir"); + File tempDir = new File(tempPath+File.separator+"temp"); + if(!tempDir.exists()) + tempDir.mkdir(); + try{ + tempFile = File.createTempFile("xxx-Session-", ".txt", tempDir); + + }catch (IOException e){ + logger.log(LogService.LOG_ERROR, e.toString()); + tempFile = new File (tempPath+File.separator+"temp"+File.separator+"temp.txt"); + + } + return tempFile; + } + + public Data[] execute() { + boolean lastSaveSuccessful = false; + String format; + File tempFile; + Display display; + IWorkbenchWindow[] windows; + final Shell parentShell; + + + windows = PlatformUI.getWorkbench().getWorkbenchWindows(); + if (windows.length == 0){ + return null; + } + parentShell = windows[0].getShell(); + display = PlatformUI.getWorkbench().getDisplay(); + tempFile = getTempFile(); + + for (int i = 0; i < data.length; i++){ + Object theData = data[i].getData(); + format = data[i].getFormat(); + if (theData instanceof File || + format.startsWith("file:text/") || + format.startsWith("file-ext:")){ + copy((File)data[i].getData(), tempFile); + lastSaveSuccessful = true; + }else{ + final Converter[] converters = conversionManager.findConverters(data[i], "file-ext:*"); + + if (converters.length < 1) { + guiBuilder.showError("No Converters", + "No valid converters for data type: " + + data[i].getData().getClass().getName(), + "Please install a plugin that will save the data type to a file"); + } + else { + if (!parentShell.isDisposed()) { + DataViewer dataViewer = new DataViewer(parentShell, data[i], converters); + display.syncExec(dataViewer); + lastSaveSuccessful = dataViewer.isSaved; + tempFile = dataViewer.theFile; + } + } + } + //display the file content + Program program = Program.findProgram("txt"); + if (program == null) { + guiBuilder.showError("No Text Viewer", + "No valid text viewer for the .txt file. " + + "The file is located at: "+tempFile.getAbsolutePath(), + "Unable to open default text viewer. File is located at: "+ + tempFile.getAbsolutePath()); + return null; + } + else { + if (lastSaveSuccessful == true) { + program.execute(tempFile.getAbsolutePath()); + } + } + + + + } + return null; + } + + public static boolean copy(File in, File out) { + try { + FileInputStream fis = new FileInputStream(in); + FileOutputStream fos = new FileOutputStream(out); + + FileChannel readableChannel = fis.getChannel(); + FileChannel writableChannel = fos.getChannel(); + + writableChannel.truncate(0); + writableChannel.transferFrom(readableChannel, 0, readableChannel.size()); + fis.close(); + fos.close(); + return true; + } + catch (IOException ioe) { + guiBuilder.showError("Copy Error", "IOException during copy", ioe.getMessage()); + return false; + } + } + + final class DataViewer implements Runnable { + Shell shell; + boolean isSaved; + Data theData; + File theFile = getTempFile(); + Converter[] theConverters; + + DataViewer (Shell parentShell, Data data, Converter[] converters){ + this.shell = parentShell; + this.theData = data; + this.theConverters = converters; + } + + public void run() { + // lots of persisters found, return the chooser + ViewDataChooser vdc = new ViewDataChooser("View", theFile, shell, + theData, theConverters, context); + vdc.open(); + isSaved = vdc.isSaved(); + } + } + + + + +} \ No newline at end of file Added: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileViewFactory.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileViewFactory.java (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/FileViewFactory.java 2006-10-11 20:44:18 UTC (rev 267) @@ -0,0 +1,35 @@ +package org.cishell.reference.gui.persistence.view; + +import java.util.Dictionary; + +import org.cishell.framework.CIShellContext; +import org.cishell.framework.algorithm.Algorithm; +import org.cishell.framework.algorithm.AlgorithmFactory; +import org.cishell.framework.data.Data; +import org.osgi.service.component.ComponentContext; +import org.osgi.service.metatype.MetaTypeProvider; +//import org.osgi.service.metatype.MetaTypeService; + + +public class FileViewFactory implements AlgorithmFactory { +// private MetaTypeProvider provider; + + protected void activate(ComponentContext ctxt) { + //You may delete all references to metatype service if + //your algorithm does not require parameters and return + //null in the createParameters() method +// MetaTypeService mts = (MetaTypeService)ctxt.locateService("MTS"); +// provider = mts.getMetaTypeInformation(ctxt.getBundleContext().getBundle()); + } + protected void deactivate(ComponentContext ctxt) { +// provider = null; + } + + public Algorithm createAlgorithm(Data[] data, Dictionary parameters, CIShellContext context) { + return new FileView(data, parameters, context); + } + public MetaTypeProvider createParameters(Data[] data) { +// return provider; + return null; + } +} \ No newline at end of file Added: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/ViewDataChooser.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/ViewDataChooser.java (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/view/ViewDataChooser.java 2006-10-11 20:44:18 UTC (rev 267) @@ -0,0 +1,44 @@ +package org.cishell.reference.gui.persistence.view; + +import java.io.File; + +import org.cishell.framework.CIShellContext; +import org.cishell.framework.data.Data; +import org.cishell.reference.gui.persistence.save.SaveDataChooser; +import org.cishell.service.conversion.Converter; + +import org.eclipse.swt.widgets.Shell; + +/* + * @author Weixia(Bonnie) Huang (hu...@in...) + * + */ +public class ViewDataChooser extends SaveDataChooser { + private File tempFile; + boolean isSaved = false; + Converter[] converters; + Data theData; + + public ViewDataChooser(String title, File tempFile, Shell parent, + Data data, Converter[] converters, CIShellContext context){ + super (data, parent, converters, title, context); + + this.tempFile = tempFile; + this.converters = converters; + this.theData = data; + } + + protected void selectionMade(int selectedIndex) { + getShell().setVisible(false); + final Converter converter = converterArray[selectedIndex]; + Data newData = converter.convert(theData); + isSaved = FileView.copy((File)newData.getData(), tempFile); + close(true); + } + + public boolean isSaved(){ + return isSaved; + } + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:40:50
|
Revision: 266 http://svn.sourceforge.net/cishell/?rev=266&view=rev Author: huangb Date: 2006-10-11 13:40:45 -0700 (Wed, 11 Oct 2006) Log Message: ----------- update the instantiation of the SaveDataChooser. Remove the input parameter: String brandPluginID, since it is not used. Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-11 20:38:15 UTC (rev 265) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/Save.java 2006-10-11 20:40:45 UTC (rev 266) @@ -68,7 +68,6 @@ SaveDataChooser sdc = new SaveDataChooser(data[0], parentShell, converters, "title", - Save.class.getName(), context); sdc.createContent(parentShell); sdc.open(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:38:23
|
Revision: 265 http://svn.sourceforge.net/cishell/?rev=265&view=rev Author: huangb Date: 2006-10-11 13:38:15 -0700 (Wed, 11 Oct 2006) Log Message: ----------- update the SaveDataChooser constructor. remove the input parameter: String brandPluginID, since it is not used. Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java 2006-10-11 20:36:20 UTC (rev 264) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveDataChooser.java 2006-10-11 20:38:15 UTC (rev 265) @@ -58,7 +58,7 @@ * @param context The CIShellContext to retrieve available services */ public SaveDataChooser(Data data, Shell parent, Converter[] converterArray, - String title, String brandPluginID, CIShellContext context) { + String title, CIShellContext context) { super(parent, title, QUESTION); this.data = data; this.converterArray = converterArray; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:36:29
|
Revision: 264 http://svn.sourceforge.net/cishell/?rev=264&view=rev Author: huangb Date: 2006-10-11 13:36:20 -0700 (Wed, 11 Oct 2006) Log Message: ----------- Add the comments "why only check data[0]? An user can select multiple objects from data manager." in the validate() method Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveFactory.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveFactory.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveFactory.java 2006-10-11 20:26:21 UTC (rev 263) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/save/SaveFactory.java 2006-10-11 20:36:20 UTC (rev 264) @@ -65,6 +65,8 @@ DataConversionService conversionManager = (DataConversionService) context.getService( DataConversionService.class.getName()); + //Fix me + //Bonnie:why only check data[0]? An user can select multiple objects from data manager. Converter[] converters = conversionManager.findConverters(data[0], "file-ext:*"); if (converters.length == 0) { return "No valid converters from " + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
Revision: 263 http://svn.sourceforge.net/cishell/?rev=263&view=rev Author: huangb Date: 2006-10-11 13:26:21 -0700 (Wed, 11 Oct 2006) Log Message: ----------- rename it to LoadDataChooser Removed Paths: ------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadPersisterChooser.java Deleted: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadPersisterChooser.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadPersisterChooser.java 2006-10-11 20:24:41 UTC (rev 262) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadPersisterChooser.java 2006-10-11 20:26:21 UTC (rev 263) @@ -1,200 +0,0 @@ -/* - * InfoVis CyberInfrastructure: A Data-Code-Compute Resource for Research - * and Education in Information Visualization (http://iv.slis.indiana.edu/). - * - * Created on Jan 24, 2005 at Indiana University. - */ -package org.cishell.reference.gui.persistence.load; - -import java.util.ArrayList; -import java.io.File; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.FillLayout; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.List; -import org.eclipse.swt.widgets.Shell; - -import org.osgi.framework.BundleContext; -import org.osgi.framework.ServiceReference; -import org.osgi.service.log.LogService; - -import org.cishell.framework.CIShellContext; -import org.cishell.framework.algorithm.AlgorithmFactory; -import org.cishell.framework.data.BasicData; -import org.cishell.framework.data.Data; - -import org.cishell.reference.gui.common.AbstractDialog; - -/** - * - * @author Team IVC (Weixia Huang, James Ellis) - */ -public class LoadPersisterChooser extends AbstractDialog { - private File theFile; - private LogService logger; - - private ServiceReference[] persisterArray; - private List persisterList; - private StyledText detailPane; - private CIShellContext ciContext; - private BundleContext bContext; - private ArrayList returnList; - - private static final String[] details_prop_names = - {"format_name", "supported_file_extension", "format_description", - "restorable_model_name", "restorable_model_description" }; - private static final String[] details_prop_name_descriptions = - {"Format name", "Supported file extension", "Format description", - "Restorable model name", "Restorable model description" }; - - public LoadPersisterChooser(String title, File theFile, - Shell parent, CIShellContext ciContext, BundleContext bContext, - ServiceReference[] persisterArray, ArrayList returnList){ - super(parent, title, AbstractDialog.QUESTION); - this.ciContext = ciContext; - this.bContext = bContext; - this.persisterArray = persisterArray; - this.returnList = returnList; - - this.theFile = theFile; - - this.logger = (LogService) ciContext.getService(LogService.class.getName()); -//shall this part be moved out of the code? - setDescription("The file you have selected can be loaded" - + " using the following formats.\n" - + "Please select one of them."); - setDetails("This dialog allows the user to choose among all available " + - "formats for loading the selected data model. Choose any of the formats " + - "to continue loading the dataset."); - } - - private Composite initGUI(Composite parent) { - Composite content = new Composite(parent, SWT.NONE); - - GridLayout layout = new GridLayout(); - layout.numColumns = 2; - content.setLayout(layout); - - Group persisterGroup = new Group(content, SWT.NONE); -//shall this label be moved out of the code? - persisterGroup.setText("Loaded by"); - persisterGroup.setLayout(new FillLayout()); - GridData persisterListGridData = new GridData(GridData.FILL_BOTH); - persisterListGridData.widthHint = 200; - persisterGroup.setLayoutData(persisterListGridData); - - persisterList = new List(persisterGroup, SWT.H_SCROLL |SWT.V_SCROLL | SWT.SINGLE); -// initPersisterArray(); - initPersisterList(); - persisterList.addSelectionListener(new SelectionAdapter(){ - public void widgetSelected(SelectionEvent e) { - List list = (List)e.getSource(); - int selection = list.getSelectionIndex(); - if(selection != -1){ - updateDetailPane(persisterArray[selection]); - } - } - }); - - Group detailsGroup = new Group(content, SWT.NONE); -// shall this label be moved out of the code? - detailsGroup.setText("Details"); - detailsGroup.setLayout(new FillLayout()); - GridData detailsGridData = new GridData(GridData.FILL_BOTH); - detailsGridData.widthHint = 200; - detailsGroup.setLayoutData(detailsGridData); - - detailPane = initDetailPane(detailsGroup); - - persisterList.setSelection(0); - updateDetailPane(persisterArray[0]); - - return content; - } - - private void initPersisterList(){ - for (int i = 0; i < persisterArray.length; ++i) { - - String name = (String)persisterArray[i].getProperty("converter_name"); - - // if someone was sloppy enough to not provide a name, then use the - // name of the class instead. - if (name == null || name.length() == 0) - name = persisterArray[i].getClass().getName(); - persisterList.add(name); - } - } - - - private StyledText initDetailPane(Group detailsGroup) { - StyledText detailPane = new StyledText(detailsGroup, SWT.H_SCROLL | SWT.V_SCROLL); - detailPane.setEditable(false); - detailPane.getCaret().setVisible(false); - return detailPane; - } - - private void updateDetailPane(ServiceReference persister) { - - detailPane.setText(""); - for (int i=0; i<details_prop_names.length; i++){ - String val = (String) persister.getProperty(details_prop_names[i]); - - StyleRange styleRange = new StyleRange(); - styleRange.start = detailPane.getText().length(); - detailPane.append(details_prop_name_descriptions[i] + ":\n"); - styleRange.length = details_prop_names[i].length() + 1; - styleRange.fontStyle = SWT.BOLD; - detailPane.setStyleRange(styleRange); - - detailPane.append(val + "\n"); - - } - - } - - private void selectionMade(int selectedIndex) { - - logger.log(LogService.LOG_INFO, "Loaded: "+theFile.getPath()); - AlgorithmFactory persister =(AlgorithmFactory) bContext.getService(persisterArray[selectedIndex]); - Data[] dm = new Data[]{new BasicData(theFile.getPath(),String.class.getName())}; - dm = persister.createAlgorithm(dm, null, ciContext).execute(); - for(int i = 0; i<dm.length; i++){ - returnList.add(dm[i]); - } - close(true); - } - - public void createDialogButtons(Composite parent) { - Button select = new Button(parent, SWT.PUSH); - select.setText("Select"); - select.addSelectionListener(new SelectionAdapter(){ - public void widgetSelected(SelectionEvent e) { - int index = persisterList.getSelectionIndex(); - if(index != -1){ - selectionMade(index); - } - } - }); - - Button cancel = new Button(parent, SWT.NONE); - cancel.setText("Cancel"); - cancel.addSelectionListener(new SelectionAdapter(){ - public void widgetSelected(SelectionEvent e) { - close(false); - } - }); - } - - public Composite createContent(Composite parent) { - return initGUI(parent); - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:24:47
|
Revision: 262 http://svn.sourceforge.net/cishell/?rev=262&view=rev Author: huangb Date: 2006-10-11 13:24:41 -0700 (Wed, 11 Oct 2006) Log Message: ----------- changes made by refactor(rename) LoadDataChooser class Modified Paths: -------------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java Modified: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java 2006-10-11 20:23:45 UTC (rev 261) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/FileLoad.java 2006-10-11 20:24:41 UTC (rev 262) @@ -157,7 +157,7 @@ } // lots of persisters found, return the chooser - new LoadPersisterChooser("Load", file, window.getShell(), + new LoadDataChooser("Load", file, window.getShell(), ciContext, bContext, serviceRefList, returnList).open(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 20:23:53
|
Revision: 261 http://svn.sourceforge.net/cishell/?rev=261&view=rev Author: huangb Date: 2006-10-11 13:23:45 -0700 (Wed, 11 Oct 2006) Log Message: ----------- rename the class from LoadPersisterChooser to LoadDataChooser Added Paths: ----------- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java Copied: trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java (from rev 242, trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadPersisterChooser.java) =================================================================== --- trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java (rev 0) +++ trunk/clients/gui/org.cishell.reference.gui.persistence/src/org/cishell/reference/gui/persistence/load/LoadDataChooser.java 2006-10-11 20:23:45 UTC (rev 261) @@ -0,0 +1,200 @@ +/* + * InfoVis CyberInfrastructure: A Data-Code-Compute Resource for Research + * and Education in Information Visualization (http://iv.slis.indiana.edu/). + * + * Created on Jan 24, 2005 at Indiana University. + */ +package org.cishell.reference.gui.persistence.load; + +import java.util.ArrayList; +import java.io.File; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.StyleRange; +import org.eclipse.swt.custom.StyledText; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Group; +import org.eclipse.swt.widgets.List; +import org.eclipse.swt.widgets.Shell; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; +import org.osgi.service.log.LogService; + +import org.cishell.framework.CIShellContext; +import org.cishell.framework.algorithm.AlgorithmFactory; +import org.cishell.framework.data.BasicData; +import org.cishell.framework.data.Data; + +import org.cishell.reference.gui.common.AbstractDialog; + +/** + * + * @author Team IVC (Weixia Huang, James Ellis) + */ +public class LoadDataChooser extends AbstractDialog { + private File theFile; + private LogService logger; + + private ServiceReference[] persisterArray; + private List persisterList; + private StyledText detailPane; + private CIShellContext ciContext; + private BundleContext bContext; + private ArrayList returnList; + + private static final String[] details_prop_names = + {"format_name", "supported_file_extension", "format_description", + "restorable_model_name", "restorable_model_description" }; + private static final String[] details_prop_name_descriptions = + {"Format name", "Supported file extension", "Format description", + "Restorable model name", "Restorable model description" }; + + public LoadDataChooser(String title, File theFile, + Shell parent, CIShellContext ciContext, BundleContext bContext, + ServiceReference[] persisterArray, ArrayList returnList){ + super(parent, title, AbstractDialog.QUESTION); + this.ciContext = ciContext; + this.bContext = bContext; + this.persisterArray = persisterArray; + this.returnList = returnList; + + this.theFile = theFile; + + this.logger = (LogService) ciContext.getService(LogService.class.getName()); +//shall this part be moved out of the code? + setDescription("The file you have selected can be loaded" + + " using the following formats.\n" + + "Please select one of them."); + setDetails("This dialog allows the user to choose among all available " + + "formats for loading the selected data model. Choose any of the formats " + + "to continue loading the dataset."); + } + + private Composite initGUI(Composite parent) { + Composite content = new Composite(parent, SWT.NONE); + + GridLayout layout = new GridLayout(); + layout.numColumns = 2; + content.setLayout(layout); + + Group persisterGroup = new Group(content, SWT.NONE); +//shall this label be moved out of the code? + persisterGroup.setText("Loaded by"); + persisterGroup.setLayout(new FillLayout()); + GridData persisterListGridData = new GridData(GridData.FILL_BOTH); + persisterListGridData.widthHint = 200; + persisterGroup.setLayoutData(persisterListGridData); + + persisterList = new List(persisterGroup, SWT.H_SCROLL |SWT.V_SCROLL | SWT.SINGLE); +// initPersisterArray(); + initPersisterList(); + persisterList.addSelectionListener(new SelectionAdapter(){ + public void widgetSelected(SelectionEvent e) { + List list = (List)e.getSource(); + int selection = list.getSelectionIndex(); + if(selection != -1){ + updateDetailPane(persisterArray[selection]); + } + } + }); + + Group detailsGroup = new Group(content, SWT.NONE); +// shall this label be moved out of the code? + detailsGroup.setText("Details"); + detailsGroup.setLayout(new FillLayout()); + GridData detailsGridData = new GridData(GridData.FILL_BOTH); + detailsGridData.widthHint = 200; + detailsGroup.setLayoutData(detailsGridData); + + detailPane = initDetailPane(detailsGroup); + + persisterList.setSelection(0); + updateDetailPane(persisterArray[0]); + + return content; + } + + private void initPersisterList(){ + for (int i = 0; i < persisterArray.length; ++i) { + + String name = (String)persisterArray[i].getProperty("converter_name"); + + // if someone was sloppy enough to not provide a name, then use the + // name of the class instead. + if (name == null || name.length() == 0) + name = persisterArray[i].getClass().getName(); + persisterList.add(name); + } + } + + + private StyledText initDetailPane(Group detailsGroup) { + StyledText detailPane = new StyledText(detailsGroup, SWT.H_SCROLL | SWT.V_SCROLL); + detailPane.setEditable(false); + detailPane.getCaret().setVisible(false); + return detailPane; + } + + private void updateDetailPane(ServiceReference persister) { + + detailPane.setText(""); + for (int i=0; i<details_prop_names.length; i++){ + String val = (String) persister.getProperty(details_prop_names[i]); + + StyleRange styleRange = new StyleRange(); + styleRange.start = detailPane.getText().length(); + detailPane.append(details_prop_name_descriptions[i] + ":\n"); + styleRange.length = details_prop_names[i].length() + 1; + styleRange.fontStyle = SWT.BOLD; + detailPane.setStyleRange(styleRange); + + detailPane.append(val + "\n"); + + } + + } + + private void selectionMade(int selectedIndex) { + + logger.log(LogService.LOG_INFO, "Loaded: "+theFile.getPath()); + AlgorithmFactory persister =(AlgorithmFactory) bContext.getService(persisterArray[selectedIndex]); + Data[] dm = new Data[]{new BasicData(theFile.getPath(),String.class.getName())}; + dm = persister.createAlgorithm(dm, null, ciContext).execute(); + for(int i = 0; i<dm.length; i++){ + returnList.add(dm[i]); + } + close(true); + } + + public void createDialogButtons(Composite parent) { + Button select = new Button(parent, SWT.PUSH); + select.setText("Select"); + select.addSelectionListener(new SelectionAdapter(){ + public void widgetSelected(SelectionEvent e) { + int index = persisterList.getSelectionIndex(); + if(index != -1){ + selectionMade(index); + } + } + }); + + Button cancel = new Button(parent, SWT.NONE); + cancel.setText("Cancel"); + cancel.addSelectionListener(new SelectionAdapter(){ + public void widgetSelected(SelectionEvent e) { + close(false); + } + }); + } + + public Composite createContent(Composite parent) { + return initGUI(parent); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 19:42:40
|
Revision: 260 http://svn.sourceforge.net/cishell/?rev=260&view=rev Author: huangb Date: 2006-10-11 11:51:25 -0700 (Wed, 11 Oct 2006) Log Message: ----------- fixed a bug on windows where the '\' was getting deleted when a file is passed into the executable Modified Paths: -------------- trunk/templates/org.cishell.templates/META-INF/MANIFEST.MF trunk/templates/org.cishell.templates/src/org/cishell/templates/staticexecutable/StaticExecutableRunner.java Modified: trunk/templates/org.cishell.templates/META-INF/MANIFEST.MF =================================================================== --- trunk/templates/org.cishell.templates/META-INF/MANIFEST.MF 2006-10-11 18:50:51 UTC (rev 259) +++ trunk/templates/org.cishell.templates/META-INF/MANIFEST.MF 2006-10-11 18:51:25 UTC (rev 260) @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: CIShell Template Code Provider -Bundle-SymbolicName: org.cishell.templates +Bundle-SymbolicName: org.cishell.templates;singleton:=true Bundle-Version: 0.1.0.qualifier Bundle-Localization: plugin X-AutoStart: true Modified: trunk/templates/org.cishell.templates/src/org/cishell/templates/staticexecutable/StaticExecutableRunner.java =================================================================== --- trunk/templates/org.cishell.templates/src/org/cishell/templates/staticexecutable/StaticExecutableRunner.java 2006-10-11 18:50:51 UTC (rev 259) +++ trunk/templates/org.cishell.templates/src/org/cishell/templates/staticexecutable/StaticExecutableRunner.java 2006-10-11 18:51:25 UTC (rev 260) @@ -212,7 +212,16 @@ for (int i=0; i < data.length; i++) { String file = ((File) data[i].getData()).getAbsolutePath(); + + if (File.separatorChar == '\\') { + file = file.replace(File.separatorChar, '/'); + } + str = str.replaceAll("\\$\\{inFile\\["+i+"\\]\\}", file); + + if (File.separatorChar == '\\') { + str = str.replace('/',File.separatorChar); + } } for (Enumeration i=parameters.keys(); i.hasMoreElements(); ) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-11 19:40:31
|
Revision: 259 http://svn.sourceforge.net/cishell/?rev=259&view=rev Author: huangb Date: 2006-10-11 11:50:51 -0700 (Wed, 11 Oct 2006) Log Message: ----------- added option of having a src directory in executable projects Modified Paths: -------------- trunk/templates/org.cishell.templates.standalone.executable/build.xml Modified: trunk/templates/org.cishell.templates.standalone.executable/build.xml =================================================================== --- trunk/templates/org.cishell.templates.standalone.executable/build.xml 2006-10-08 15:11:57 UTC (rev 258) +++ trunk/templates/org.cishell.templates.standalone.executable/build.xml 2006-10-11 18:50:51 UTC (rev 259) @@ -38,6 +38,7 @@ <exclude name="l10n/**/*"/> <exclude name="build/**/*"/> <exclude name="lib/**/*"/> + <exclude name="src/**/*"/> <exclude name="*"/> </fileset> </copy> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-08 15:12:03
|
Revision: 258 http://svn.sourceforge.net/cishell/?rev=258&view=rev Author: huangb Date: 2006-10-08 08:11:57 -0700 (Sun, 08 Oct 2006) Log Message: ----------- Added Paths: ----------- trunk/libs/edu.uci.ics.jung/ Removed Paths: ------------- trunk/libs/edu.uci.ics.junglib/ Copied: trunk/libs/edu.uci.ics.jung (from rev 257, trunk/libs/edu.uci.ics.junglib) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-08 15:11:30
|
Revision: 257 http://svn.sourceforge.net/cishell/?rev=257&view=rev Author: huangb Date: 2006-10-08 08:11:25 -0700 (Sun, 08 Oct 2006) Log Message: ----------- rename the package Modified Paths: -------------- trunk/libs/edu.uci.ics.junglib/.project Modified: trunk/libs/edu.uci.ics.junglib/.project =================================================================== --- trunk/libs/edu.uci.ics.junglib/.project 2006-10-08 15:10:54 UTC (rev 256) +++ trunk/libs/edu.uci.ics.junglib/.project 2006-10-08 15:11:25 UTC (rev 257) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>edu.uci.ics.junglib</name> + <name>edu.uci.ics.jung</name> <comment></comment> <projects> </projects> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-08 15:11:11
|
Revision: 256 http://svn.sourceforge.net/cishell/?rev=256&view=rev Author: huangb Date: 2006-10-08 08:10:54 -0700 (Sun, 08 Oct 2006) Log Message: ----------- Added Paths: ----------- trunk/libs/edu.uci.ics.junglib/ Removed Paths: ------------- trunk/libs/edu.uci.ics.jung/ Copied: trunk/libs/edu.uci.ics.junglib (from rev 255, trunk/libs/edu.uci.ics.jung) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-08 15:09:20
|
Revision: 255 http://svn.sourceforge.net/cishell/?rev=255&view=rev Author: huangb Date: 2006-10-08 08:09:16 -0700 (Sun, 08 Oct 2006) Log Message: ----------- Added Paths: ----------- trunk/libs/cern.colt/ Removed Paths: ------------- trunk/libs/coltlib/ Copied: trunk/libs/cern.colt (from rev 254, trunk/libs/coltlib) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2006-10-08 15:08:37
|
Revision: 254 http://svn.sourceforge.net/cishell/?rev=254&view=rev Author: huangb Date: 2006-10-08 08:08:33 -0700 (Sun, 08 Oct 2006) Log Message: ----------- rename the package Modified Paths: -------------- trunk/libs/coltlib/.project Modified: trunk/libs/coltlib/.project =================================================================== --- trunk/libs/coltlib/.project 2006-10-08 15:07:59 UTC (rev 253) +++ trunk/libs/coltlib/.project 2006-10-08 15:08:33 UTC (rev 254) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>coltlib</name> + <name>cern.colt</name> <comment></comment> <projects> </projects> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |