From: Ronald M. <rj...@co...> - 2012-10-19 06:33:36
|
Hi Erica, Are you still working on this problem? I happen to be doing just the same thing for the last few days and I just today got a network to display successfully by loading an Excel file. I initially loaded my Excel file to the jZombies environment, but called the package and context id "jExtZombies" because it is an extended jZombies context, then after obtaining a successful diagram I removed the Human and Zombie classes since they are distracting, leaving only the new node class NameNode which I created for the nodes that are loaded from the Excel file: NameNode.java: package jExtZombies; public class NameNode // not a subclass/implementor of Repast Node interface { private String name; public NameNode(String name) { System.out.println("calling NameNode constructor on name = " + name); this.name = name; } public String getName() { return name; } public void setName(String name) { System.out.println("calling NameNode.setName on name = " + name); this.name = name; } } My other class is JZombiesBuilder.java: package jExtZombies; // This project loads the network from Excel file referenced from JZombiesBuilder.java. References to human and Zombie have been removed. import repast.simphony.context.Context; import repast.simphony.context.DefaultContext; import repast.simphony.context.space.continuous.ContinuousSpaceFactory; import repast.simphony.context.space.continuous.ContinuousSpaceFactoryFinder; import repast.simphony.context.space.graph.NetworkBuilder; import repast.simphony.context.space.graph.NetworkFileFormat; import repast.simphony.context.space.graph.NodeCreator; import repast.simphony.dataLoader.ContextBuilder; import repast.simphony.engine.environment.RunEnvironment; import repast.simphony.parameter.Parameters; import repast.simphony.random.RandomHelper; import repast.simphony.space.continuous.ContinuousSpace; import repast.simphony.space.continuous.NdPoint; import repast.simphony.space.continuous.RandomCartesianAdder; import repast.simphony.space.graph.Network; import repast.simphony.context.space.graph.DefaultNodeCreator; import java.io.IOException; public class JZombiesBuilder implements ContextBuilder<Object> { @Override public Context<Object> build(Context<Object> context) { context.setId("jExtZombies"); ContinuousSpaceFactory spaceFactory = ContinuousSpaceFactoryFinder.createContinuousSpaceFactory(null); ContinuousSpace<Object> space = spaceFactory.createContinuousSpace( "space", context, new RandomCartesianAdder<Object>(), new repast.simphony.space.continuous.WrapAroundBorders(), 50, 50); try { NetworkBuilder netBuilder = new NetworkBuilder("test network", context, true); NodeCreator myNodeCreator = new DefaultNodeCreator(NameNode.class); // a NameNode's name field is a String whose value is provided by its constructor. netBuilder.load("/Users/ronaldmintz/RepastNetworkModels/LoadNetFromExcel/test1.xls", NetworkFileFormat.EXCEL, myNodeCreator); Network net = netBuilder.buildNetwork(); // net will contain only NameNode's and edges corresponding to // the file loaded. } catch (IOException e) { System.out.println("IOException occurred when trying to build network: " + e.getMessage()); } catch (Exception e) { System.out.println("Non-IO Exception occurred when trying to build network: " + e.getMessage()); } System.out.println("JZombiesBuilder.build(context) has completed without exceptions"); return context; } } There are several problems that I want to talk about. (1) I also got the NullPointerException that you got on Jul 24 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException, giving me the following: at repast.simphony.visualizationOGL2D.DisplayOGL2D.getSpatialForObject(DisplayOGL2D.java:526) at repast.simphony.visualizationOGL2D.NetworkLayerOGL2D.update(NetworkLayerOGL2D.java:103) at repast.simphony.visualizationOGL2D.DisplayOGL2D.update(DisplayOGL2D.java:402) at repast.simphony.visualizationOGL2D.DisplayOGL2D.reshape(DisplayOGL2D.java:580) at saf.v3d.Canvas2D.reshape(Canvas2D.java:362) at com.sun.opengl.impl.GLDrawableHelper.reshape(GLDrawableHelper.java:85) at javax.media.opengl.GLCanvas$DisplayAction.run(GLCanvas.java:431) at com.sun.opengl.impl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:194) at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(GLCanvas.java:412) at javax.media.opengl.GLCanvas.display(GLCanvas.java:244) at javax.media.opengl.GLCanvas.paint(GLCanvas.java:277) at sun.awt.RepaintArea.paintComponent(RepaintArea.java:276) at sun.awt.RepaintArea.paint(RepaintArea.java:241) at apple.awt.ComponentModel.handleEvent(ComponentModel.java:263) at java.awt.Component.dispatchEventImpl(Component.java:4811) at java.awt.Component.dispatchEvent(Component.java:4565) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:679) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:638) at java.awt.EventQueue$1.run(EventQueue.java:636) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:652) at java.awt.EventQueue$2.run(EventQueue.java:650) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:649) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) This happened when i selected jExtZombies model from the menu which pops up on clicking the little black triangle as described in Repast Java Getting Started on page 19, figure 10, and did the following: When the Scenario Tree appears, I double click on Displays/Space Display, the press the down arrow on the popup to select Agent Selection, getting the following In the Options Editor, Zombie and Human still show up in the right side box because I don't know how to delete them completely from the model, but I no longer define these classes, so I moved them to the left side box where they won't cause errors. Since I now use NameNode instead, it needs to be moved to the right side box, in which case everything runs fine and the network will be displayed. However, I could not find any way to save this selection. the OK and Apply All buttons did not save my selections for another run, so I had to repeat this procedure on every run. If I move Zombie and Human to the left side box, but neglect to move NameNode to the right side box, the NullPointerException shown above happens. Sometimes other errors happen because this change wasn't saved. You must move the node that must appear in the diagram (NameNode in my program) to the right side box. Then press down arrow again to Agent Style and click or double click the button next to Style Class. In the 2D Shape Editor, I select getName under Icon Label/Value. Then press OK twice. Then press the Initialize Run button above the Scenario Tree. The diagram appears next to the Scenario Tree. The nodes are even labelled with their name if getName was selected and the max. (2) You were using > public class MyNodeCreator implements NodeCreator { > > @Override > public Object createNode(String label) { > // TODO Auto-generated method stub > return this; > } > > } but this is the Auto-generated method stub and needs to be replaced by an implementation of NodeCreator that really creates nodes. Unfortunately the RepastReference.pdf just references myNodeCreator without telling you how to define it. The DefaultNodeCreator class works fine provided that its constructor is given a class like my class NameNode which has a constructor which takes a string: public NameNode(String name) I show this class definition on top of this email. The only other class which I had to write is JZombiesBuilder, also shown on top of this email. There is no need for the grid. The DefaultNodeCreator class is built into Repast. context.xml is the following: <context id="jExtZombies" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://repast.org/scenario/context"> <projection type="continuous space" id="space"></projection> <projection type="network" id="test network"></projection> </context> (3) I think the method NetworkBuilder.load() ought to be called setLoader() because it assigns to the loader field of NetworkBuilder but the actual loading is done in buildNetwork() when loader.createNetwork(net); is called. So I include both statements netBuilder.load("/Users/ronaldmintz/RepastNetworkModels/LoadNetFromExcel/test1.xls", NetworkFileFormat.EXCEL, myNodeCreator); Network net = netBuilder.buildNetwork(); in the try clause in case an exception happens in either statement. The output message from this exception handler was very helpful in debugging my program. (4) The Excel file (matrix) that I read in is /Users/ronaldmintz/RepastNetworkModels/LoadNetFromExcel/test1.xls : which has the form a1 a2 a3 a4 a1 0 1 1 1 a2 1 0 1 0 a3 1 1 0 0 a4 1 0 0 0 where the nodes have name strings a1, a2, a3, and a4. 1 in the matrix indicates an edge between the nodes, 0 indicates the absence of an edge. This info is used to automatically create the edges. I am attaching this excel file. It needs to be in Microsoft Excel 97-2004 workbook format. The latest (.xlsx) format does not work with the present version of Repast Simphony 2.0. I hope this explains the technique to be used. My next assignment is to create data fields (properties) in each node to hold data which will be supplied in another sheet (matrix) of Excel such as name attrib1 attrib2 attrib3 a1 a 10 red a2 a 11.3 green a3 c 22 orange which should create nodes such as public class DataNode { String name; String attrib1; // data fields String attrib2; String attrib3; } for each row of this matrix. Does anyone know whether NetworkBuilder.buildNetwork() has the capability of filling in the above data fields from another sheet (matrix) of the Excel file that is loaded (in a format such as the above)? Ron Begin forwarded message: From: Sdynes <sd...@ac...> Subject: Re: [Repast-interest] Newbie: Demo Project that Uses an Imported Network from an Excel File Date: October 18, 2012 7:45:28 AM EDT To: rep...@li... I had the same error message. The problem was that I had created two separate Displays - a 'Space Display' and a 'Network' display: http://old.nabble.com/file/p34572497/Screen%2BShot%2B2012-10-18%2Bat%2B7.39.59%2BAM.png The correct way to do this is to have a single Display with the space and network projections: http://old.nabble.com/file/p34572497/Screen%2BShot%2B2012-10-18%2Bat%2B7.40.16%2BAM.png I think the null pointer error when looking for the position comes from their not being a 2-D layout in the display; there aren't any icons being drawn to connect with network edges. (I know this is months late, but want to expose the learnings somewhere...) Scott Erica Calogero wrote: > > Hi there, > > I didn't write anything, just created it, here is the code: > > > package jzombies; > > import repast.simphony.context.space.graph.NodeCreator; > > /** > * @author eicc > * > */ > public class MyNodeCreator implements NodeCreator { > > @Override > public Object createNode(String label) { > // TODO Auto-generated method stub > return this; > } > > } > > Kind regards, > > Erica. > > On Thu, Jul 26, 2012 at 2:02 PM, Nick Collier > <nic...@ve...>wrote: > >> Yes, that's what I meant. Can you send me the source to your NodeCreator? >> >> Nick >> >> On Jul 25, 2012, at 11:00 AM, Erica Calogero wrote: >> >> Hi Nick, >> >> Do you mean delete any default displays and then run it? I did that, and >> no error messages wrre throen, although the programme did go unresponsive >> at about tick count 674.0. I had to stop the thread from the console as >> the >> pause or stop buttons did not work at this point. >> >> Kind regards, >> >> Erica. >> >> On Wed, Jul 25, 2012 at 2:21 PM, Nick Collier >> <nic...@ve...>wrote: >> >>> Can you try running without the display and see if you get a more >>> informative error? >>> >>> thanks, >>> >>> Nick >>> >>> On Jul 24, 2012, at 3:15 PM, Erica Calogero wrote: >>> >>> Hi there Nick, >>> >>> That indeed did the trick. Now that I have done that, I get this error: >>> >>> Exception in thread "AWT-EventQueue-0" *java.lang.NullPointerException* >>> >>> at >>> repast.simphony.visualizationOGL2D.DisplayOGL2D.getSpatialForObject(* >>> DisplayOGL2D.java:526*) >>> >>> at repast.simphony.visualizationOGL2D.NetworkLayerOGL2D.update(* >>> NetworkLayerOGL2D.java:103*) >>> >>> at repast.simphony.visualizationOGL2D.DisplayOGL2D.update(* >>> DisplayOGL2D.java:402*) >>> >>> at repast.simphony.visualizationOGL2D.DisplayOGL2D.reshape(* >>> DisplayOGL2D.java:580*) >>> >>> at saf.v3d.Canvas2D.reshape(*Canvas2D.java:362*) >>> >>> at com.sun.opengl.impl.GLDrawableHelper.reshape(* >>> GLDrawableHelper.java:85*) >>> >>> at javax.media.opengl.GLCanvas$DisplayAction.run(* >>> GLCanvas.java:431*) >>> >>> at com.sun.opengl.impl.GLDrawableHelper.invokeGL(* >>> GLDrawableHelper.java:194*) >>> >>> at javax.media.opengl.GLCanvas.maybeDoSingleThreadedWorkaround(* >>> GLCanvas.java:412*) >>> >>> at javax.media.opengl.GLCanvas.display(*GLCanvas.java:244*) >>> >>> at javax.media.opengl.GLCanvas.paint(*GLCanvas.java:277*) >>> >>> at sun.awt.RepaintArea.paintComponent(Unknown Source) >>> >>> at sun.awt.RepaintArea.paint(Unknown Source) >>> >>> at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) >>> >>> at java.awt.Component.dispatchEventImpl(Unknown Source) >>> >>> at java.awt.Component.dispatchEvent(Unknown Source) >>> >>> at java.awt.EventQueue.dispatchEventImpl(Unknown Source) >>> >>> at java.awt.EventQueue.access$000(Unknown Source) >>> >>> at java.awt.EventQueue$1.run(Unknown Source) >>> >>> at java.awt.EventQueue$1.run(Unknown Source) >>> >>> at java.security.AccessController.doPrivileged(*Native Method*) >>> >>> at >>> java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown >>> Source) >>> >>> at >>> java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown >>> Source) >>> >>> at java.awt.EventQueue$2.run(Unknown Source) >>> >>> at java.awt.EventQueue$2.run(Unknown Source) >>> >>> at java.security.AccessController.doPrivileged(*Native Method*) >>> >>> at >>> java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown >>> Source) >>> >>> at java.awt.EventQueue.dispatchEvent(Unknown Source) >>> >>> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown >>> Source) >>> >>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown >>> Source) >>> >>> at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown >>> Source) >>> >>> at java.awt.EventDispatchThread.pumpEvents(Unknown Source) >>> >>> at java.awt.EventDispatchThread.pumpEvents(Unknown Source) >>> >>> at java.awt.EventDispatchThread.run(Unknown Source) >>> >>> From the following code (which is based on the JZombies_Demo project, >>> with a modified builder class that looks like: >>> >>> public class JZombiesBuilder implements ContextBuilder { >>> >>> >>> /* >>> >>> * (non-Javadoc) >>> >>> * >>> >>> * @see >>> >>> * >>> repast.simphony.dataLoader.ContextBuilder#build(repast.simphony.context >>> >>> * .Context) >>> >>> */ >>> >>> @Override >>> >>> public Context build(Context context) { >>> >>> context.setId("jzombies"); >>> >>> >>> MyNodeCreator myCreator = new >>> MyNodeCreator(); >>> >>> >>> NetworkBuilder builder = new >>> NetworkBuilder("spatialNetwork", >>> >>> context, >>> false); >>> >>> >>> try { >>> >>> >>> builder.load("./matrices.xls", >>> >>> >>> NetworkFileFormat.EXCEL, myCreator); >>> >>> } catch (IOException e) { >>> >>> e.printStackTrace(); >>> >>> } >>> >>> Network spatialNetwork = >>> builder.buildNetwork(); >>> >>> >>> ContinuousSpaceFactory spaceFactory = >>> ContinuousSpaceFactoryFinder >>> >>> >>> .createContinuousSpaceFactory(null); >>> >>> ContinuousSpace space = >>> spaceFactory.createContinuousSpace( >>> >>> "space", >>> context, new RandomCartesianAdder(), >>> >>> new >>> repast.simphony.space.continuous.WrapAroundBorders(), 50, >>> >>> 50); >>> >>> >>> GridFactory gridFactory = >>> GridFactoryFinder.createGridFactory(null); >>> >>> Grid grid = >>> gridFactory.createGrid("grid", context, >>> >>> new >>> GridBuilderParameters(new WrapAroundBorders(), >>> >>> >>> new SimpleGridAdder(), true, 50, 50)); >>> >>> >>> for (Object obj : context) { >>> >>> NdPoint pt = >>> space.getLocation(obj); >>> >>> grid.moveTo(obj, (int) >>> pt.getX(), (int) pt.getY()); >>> >>> } >>> >>> >>> return context; >>> >>> } >>> >>> } >>> >>> Could you let me know if you can see what the error might be from this? >>> >>> Thank you, >>> >>> Kind regards, >>> >>> Erica. >>> >>> On Wed, Jul 11, 2012 at 2:05 PM, Nick Collier >>> <nic...@ve...>wrote: >>> >>>> Eric, >>>> >>>> Does "./matrices.xls" work? If you look at the launcher for your model, >>>> you can see what the working directory is and set the path relative to >>>> that. Also, you could just give full complete path. >>>> >>>> Nick >>>> >>>> On Jul 11, 2012, at 5:50 AM, Erica Calogero wrote: >>>> >>>> Hi Nick, >>>> >>>> Thank you for the help. I am having difficulty getting rid of a file >>>> I/O >>>> error with the code. I have created an excel file called matrices, and >>>> placed it in the root folder of the project. If that is the case, what >>>> text >>>> would I replace the current filepath with in the following bit of code >>>> to >>>> make it not throw this error? (I know this is really basic, which is >>>> why I >>>> don't want to post to the whole list)... >>>> >>>> >>>> >>>> builder.load("repast.simphony.core/test/repast/simphony/graph/matrices.xls", >>>> >>>> Thank you for your help, >>>> >>>> Kind regards, >>>> >>>> Erica. >>>> >>>> >>>> On Thu, Jul 5, 2012 at 2:05 PM, Nick Collier >>>> <nic...@ve...>wrote: >>>> >>>>> Erica, >>>>> >>>>> The NetworkBuilder will create the nodes, add them to the context, as >>>>> well as create the network projection and add it to the context. Given >>>>> that, you don't need the code in your example that creates the >>>>> nodelist, >>>>> adds agents to it, etc. >>>>> >>>>> Nick >>>>> >>>>> On Jul 4, 2012, at 11:29 AM, Erica Calogero wrote: >>>>> >>>>> Hi there, >>>>> >>>>> Just to add that I am trying to follow these instructions to create a >>>>> Context Builder using a Network projection following these >>>>> instructions: >>>>> >>>>> >>>>> http://repast.sourceforge.net/docs/reference/SIM/Network%20Projections.html >>>>> >>>>> The code I have so far is below: >>>>> >>>>> /** >>>>> >>>>> * >>>>> >>>>> */ >>>>> >>>>> package NetworkAgents.NetworkAgents; >>>>> >>>>> >>>>> >>>>> import java.io.IOException; >>>>> >>>>> import java.util.List; >>>>> >>>>> import repast.simphony.context.Context; >>>>> >>>>> import repast.simphony.context.space.graph.NetworkBuilder; >>>>> >>>>> import repast.simphony.context.space.graph.NetworkFileFormat; >>>>> >>>>> import repast.simphony.dataLoader.ContextBuilder; >>>>> >>>>> import repast.simphony.random.RandomHelper; >>>>> >>>>> import repast.simphony.space.graph.Network; >>>>> >>>>> >>>>> >>>>> /** >>>>> >>>>> * @author Erica Calogero July 2012 (c) All rights reserved >>>>> >>>>> * >>>>> >>>>> */ >>>>> >>>>> public class NetAgentsBuilder implements ContextBuilder { >>>>> >>>>> >>>>> >>>>> @Override >>>>> >>>>> public Context build(Context context) { >>>>> >>>>> >>>>> >>>>> context.setId("NetworkAgents"); >>>>> >>>>> >>>>> >>>>> MyNodeCreator myCreator = new >>>>> MyNodeCreator(); >>>>> >>>>> >>>>> >>>>> NetworkBuilder builder = new >>>>> NetworkBuilder("spatialNetwork", >>>>> >>>>> >>>>> context, false); >>>>> >>>>> //builder.setEdgeCreator(new >>>>> NetworkEdgeCreator<NetSpatialNode>()); >>>>> >>>>> try { >>>>> >>>>> >>>>> builder.load("repast.simphony.core/test/repast/simphony/graph/matrices.xls", >>>>> >>>>> >>>>> NetworkFileFormat.EXCEL, >>>>> myCreator); >>>>> >>>>> } catch (IOException e) { >>>>> >>>>> e.printStackTrace(); >>>>> >>>>> } >>>>> >>>>> Network spatialNetwork = >>>>> builder.buildNetwork(); >>>>> >>>>> >>>>> >>>>> //TODO create an importer that can >>>>> import a list of nodes >>>>> >>>>> //that exist in the imported network >>>>> >>>>> //right now this is just dummy code >>>>> >>>>> List<NetSpatialNode> nodelist = null; >>>>> >>>>> for(int i = 0; i < 20; i++){ >>>>> >>>>> nodelist.add(new >>>>> NetSpatialNode()); >>>>> >>>>> } >>>>> >>>>> //This is where the agents that move >>>>> get added to the context >>>>> >>>>> int agentCount = 10; >>>>> >>>>> for(int i = 0; i < agentCount; i++){ >>>>> >>>>> NetSpatialNode >>>>> startnode = nodelist.get(RandomHelper.nextIntFromTo(0, >>>>> nodelist.size()-1)); >>>>> >>>>> context.add(new >>>>> wayFinder(startnode, nodelist)); >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> return context; >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> } >>>>> >>>>> On Wed, Jul 4, 2012 at 2:21 PM, Erica Calogero >>>>> <eca...@gm...>wrote: >>>>> >>>>>> Hi Richard, >>>>>> >>>>>> Yes, this looks interesting as a way to import the network >>>>>> information >>>>>> into a file the regular java way. It does not however implement a >>>>>> network >>>>>> context, which I am interested in doing. I will see what I can do >>>>>> with this >>>>>> as a starting point. Thank you, the documentation looks extremely >>>>>> clear. >>>>>> >>>>>> Kind regards, >>>>>> >>>>>> Erica. >>>>>> >>>>>> >>>>>> On Wed, Jul 4, 2012 at 1:30 PM, Richard O. Legendi >>>>>> <rle...@ai...>wrote: >>>>>> >>>>>>> Hi Erica, >>>>>>> >>>>>>> Here is a small description how to handle an input file from Repast >>>>>>> Simphony: >>>>>>> >>>>>>> http://code.google.com/p/cscs-**repast-demos/wiki/StupidModel#** >>>>>>> Habitat_Data_from_File_Input<http://code.google.com/p/cscs-repast-demos/wiki/StupidModel#Habitat_Data_from_File_Input> >>>>>>> >>>>>>> Here I use it to construct a 2D world, creating an initial network >>>>>>> from a file should be similar, and it is reading a simple CSV file >>>>>>> (you can >>>>>>> save any Excel sheet as Coma Separated Values). >>>>>>> >>>>>>> If you need to use advanced features of Excel through the Repast >>>>>>> Java >>>>>>> API, you'll need something like Apache POI to do the job ( >>>>>>> http://poi.apache.org/). >>>>>>> >>>>>>> Hope that helps a bit. >>>>>>> >>>>>>> Best regards, >>>>>>> Richard >>>>>>> >>>>>>> -- >>>>>>> Richard O. Legendi >>>>>>> Software developer >>>>>>> Intelligent Applications and Web Services >>>>>>> AITIA International, Inc. >>>>>>> http://people.inf.elte.hu/**legendi/<http://people.inf.elte.hu/legendi/> >>>>>>> >>>>>>> >>>>>>> On 2012.07.04. 14:18, Erica Calogero wrote: >>>>>>> >>>>>>>> Hi there, >>>>>>>> >>>>>>>> I am a newbie looking for a demo project that uses an imported file >>>>>>>> from excel. Can anybody tell me if they have one? >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Erica >>>>>>> >>>>>>> >> > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > Repast-interest mailing list > Rep...@li... > https://lists.sourceforge.net/lists/listinfo/repast-interest > > -- View this message in context: http://old.nabble.com/Newbie%3A-Demo-Project-that-Uses-an-Imported-Network-from-an-Excel-File-tp34112779p34572497.html Sent from the repast-interest mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_sfd2d_oct _______________________________________________ Repast-interest mailing list Rep...@li... https://lists.sourceforge.net/lists/listinfo/repast-interest |