Package mgui.interfaces.projects
Class InterfaceProject
java.lang.Object
mgui.interfaces.AbstractInterfaceObject
mgui.interfaces.projects.InterfaceProject
- All Implemented Interfaces:
java.lang.Cloneable,AttributeListener,AttributeObject,InterfaceObject,PopupMenuObject,NamedObject,TreeObject,CleanableObject,XMLObject,IconObject
public class InterfaceProject extends AbstractInterfaceObject implements AttributeListener, AttributeObject, IconObject, PopupMenuObject, java.lang.Cloneable, XMLObject
Represents a modelGUI project, which specifies an organizational structure for persistent data
related to a common project.
See http://mgui.wikidot.com/projects for details.
- Since:
- 1.0
- Version:
- 1.0
- Author:
- Andrew Reid
-
Nested Class Summary
Nested classes/interfaces inherited from interface mgui.interfaces.xml.XMLObject
XMLObject.XMLEncoding, XMLObject.XMLType -
Field Summary
Fields inherited from class mgui.interfaces.AbstractInterfaceObject
isDestroyed, tree_nodes -
Constructor Summary
Constructors Constructor Description InterfaceProject()InterfaceProject(java.lang.String name, java.io.File root, java.lang.String project_dir, java.lang.String instance_dir, boolean create_dirs) -
Method Summary
Modifier and Type Method Description booleanapplyInstances(boolean remove)booleanapplySubdirs(boolean remove)voidattributeUpdated(AttributeEvent e)Called when an Attribute's value has been updated.java.lang.Objectclone()protected java.io.FilegetAbsoluteInstanceDir()java.util.ArrayList<ProjectDirectory>getAllSubdirectories()Returns a list of all directories and their subdirectories contained in this project.protected java.util.ArrayList<ProjectDirectory>getAllSubdirectories(java.util.ArrayList<ProjectDirectory> dirs)Returns a list of all directories and their subdirectories contained in this list of directories.Attribute<?>getAttribute(java.lang.String attrName)Returns a specific attribute for this object.AttributeListgetAttributes()Returns the list of current attributes for this object.java.lang.ObjectgetAttributeValue(java.lang.String name)Gets the value of attributename, ornullif it does not exist.java.lang.StringgetDTD()Returns the Data Type Declaration (DTD) for this object's XML representationProjectInstancegetInstance(int index)ProjectInstancegetInstance(java.lang.String name)java.lang.StringgetInstanceDir()java.util.ArrayList<java.lang.String>getInstanceNames()java.lang.StringgetInstancePrefix()java.util.ArrayList<ProjectInstance>getInstances()Returns a (copied) array of the instances in this projectjava.lang.StringgetInstanceSuffix()java.lang.StringgetLocalName()Returns the local name associated with this XML object.java.lang.StringgetName()Gets the name for this object.javax.swing.IcongetObjectIcon()Returns theIconassociated with this object.InterfacePopupMenugetPopupMenu()Produces and returns a popup menu for this object.InterfacePopupMenugetPopupMenu(java.util.List<java.lang.Object> selected)Produces and returns a popup menu for this object.java.lang.StringgetProjectDir()java.io.FilegetRootDir()java.lang.StringgetShortXML(int tab)Returns a short XML representation of this object.java.util.ArrayList<ProjectDirectory>getSubdirs()java.lang.StringgetTreeLabel()Returns the label text to appear in a tree node.java.lang.StringgetXML()Returns this object's XML representation as a single string.java.lang.StringgetXML(int tab)Returns this object's XML representation as a single string.java.lang.StringgetXMLSchema()Returns the XML schema for this object's XML representationvoidhandlePopupEvent(java.awt.event.ActionEvent e)Handles an event on this object's popup menu.voidhandleXMLElementEnd(java.lang.String localName)Handles the end of an XML element.voidhandleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)Handles the start of an XML element.voidhandleXMLString(java.lang.String s)Handles a string within an XML element.booleanhasInstances()voidhasInstances(boolean b)protected voidinit()java.lang.ObjectloadDataInstance(java.lang.String instance, java.lang.Integer series, ProjectDataItem item, ProgressUpdater progress)Attempts to load a data instance with the given data item specification.java.lang.ObjectloadDataInstance(java.lang.String instance, ProjectDataItem item, ProgressUpdater progress)Attempts to load a data instance with the given data item specification.voidsetAttribute(java.lang.String attrName, java.lang.Object newValue)Sets a value for a specific attribute.voidsetAttributes(AttributeList thisList)Sets the list of attributes for this object.voidsetFromProject(InterfaceProject project)Sets this project from another project.booleansetInstanceDir(java.lang.String dir)voidsetInstancePrefix(java.lang.String prefix)voidsetInstances()voidsetInstances(java.util.ArrayList<ProjectInstance> instances)voidsetInstancesFromNames(java.util.ArrayList<java.lang.String> names)voidsetInstanceSuffix(java.lang.String suffix)voidsetName(java.lang.String name)Sets the name for this object.booleansetProjectDir(java.lang.String dir)booleansetRootDir(java.io.File file)voidsetSubdirectories(java.util.ArrayList<ProjectDirectory> paths)Sets the subdirectory list from a list of paths.voidsetSubdirectoriesFromPaths(java.util.ArrayList<java.lang.String> paths)voidsetSubdirs()voidsetTreeNode(InterfaceTreeNode node)Sets the children for this node'sInterfaceTreeNode.voidshowPopupMenu(java.awt.event.MouseEvent e)Shows a popup menu at the point of the givenMouseEvent.booleanupdateFileSystem(boolean remove)voidwriteXML(int tab, java.io.Writer writer)Writes the XML representation of this object to file.voidwriteXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)Writes the XML representation of this object to file, asXMLType.Normal.voidwriteXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar)Writes the XML representation of this object to file.Methods inherited from class mgui.interfaces.AbstractInterfaceObject
clean, destroy, isDestroyed, issueTreeNode, updateTreeNodesMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
InterfaceProject
public InterfaceProject() -
InterfaceProject
public InterfaceProject(java.lang.String name, java.io.File root, java.lang.String project_dir, java.lang.String instance_dir, boolean create_dirs) throws ProjectIOException- Throws:
ProjectIOException
-
-
Method Details
-
init
protected void init() -
getObjectIcon
public javax.swing.Icon getObjectIcon()Description copied from interface:IconObjectReturns theIconassociated with this object.- Specified by:
getObjectIconin interfaceIconObject- Returns:
-
getProjectDir
public java.lang.String getProjectDir() -
setProjectDir
public boolean setProjectDir(java.lang.String dir) -
getInstance
-
getInstance
-
getInstanceDir
public java.lang.String getInstanceDir() -
setInstanceDir
public boolean setInstanceDir(java.lang.String dir) -
getInstancePrefix
public java.lang.String getInstancePrefix() -
setInstancePrefix
public void setInstancePrefix(java.lang.String prefix) -
getInstanceSuffix
public java.lang.String getInstanceSuffix() -
setInstanceSuffix
public void setInstanceSuffix(java.lang.String suffix) -
setName
public void setName(java.lang.String name)Description copied from interface:NamedObjectSets the name for this object.- Specified by:
setNamein interfaceNamedObject- Overrides:
setNamein classAbstractInterfaceObject
-
getName
public java.lang.String getName()Description copied from interface:NamedObjectGets the name for this object.- Specified by:
getNamein interfaceNamedObject- Overrides:
getNamein classAbstractInterfaceObject- Returns:
-
hasInstances
public boolean hasInstances() -
hasInstances
public void hasInstances(boolean b) -
getInstances
Returns a (copied) array of the instances in this project- Returns:
-
getSubdirs
-
setRootDir
public boolean setRootDir(java.io.File file) -
getRootDir
public java.io.File getRootDir() -
attributeUpdated
Description copied from interface:AttributeListenerCalled when an Attribute's value has been updated.- Specified by:
attributeUpdatedin interfaceAttributeListener
-
getTreeLabel
public java.lang.String getTreeLabel()Description copied from interface:TreeObjectReturns the label text to appear in a tree node.- Specified by:
getTreeLabelin interfaceTreeObject- Overrides:
getTreeLabelin classAbstractInterfaceObject- Returns:
-
setTreeNode
Description copied from interface:TreeObjectSets the children for this node'sInterfaceTreeNode.- Specified by:
setTreeNodein interfaceTreeObject- Overrides:
setTreeNodein classAbstractInterfaceObject
-
getInstanceNames
public java.util.ArrayList<java.lang.String> getInstanceNames() -
applyInstances
public boolean applyInstances(boolean remove) -
applySubdirs
public boolean applySubdirs(boolean remove) -
getAllSubdirectories
Returns a list of all directories and their subdirectories contained in this project.- Returns:
- All subdirectories and their subdirectories, etc., contained in this project
-
getAllSubdirectories
protected java.util.ArrayList<ProjectDirectory> getAllSubdirectories(java.util.ArrayList<ProjectDirectory> dirs)Returns a list of all directories and their subdirectories contained in this list of directories. Can be used recursively.- Parameters:
dirs- The list of directories- Returns:
- All subdirectories and their subdirectories, etc., contained in this list
-
updateFileSystem
public boolean updateFileSystem(boolean remove) -
setInstancesFromNames
public void setInstancesFromNames(java.util.ArrayList<java.lang.String> names) -
setInstances
-
setInstances
public void setInstances() -
getAbsoluteInstanceDir
protected java.io.File getAbsoluteInstanceDir() -
setSubdirs
public void setSubdirs() -
setSubdirectoriesFromPaths
public void setSubdirectoriesFromPaths(java.util.ArrayList<java.lang.String> paths) -
setSubdirectories
Sets the subdirectory list from a list of paths.- Parameters:
paths-
-
setFromProject
Sets this project from another project. Destroys the current state of the project.- Parameters:
project-
-
getAttribute
Description copied from interface:AttributeObjectReturns a specific attribute for this object.- Specified by:
getAttributein interfaceAttributeObject- Returns:
-
getAttributeValue
public java.lang.Object getAttributeValue(java.lang.String name)Description copied from interface:AttributeObjectGets the value of attributename, ornullif it does not exist.- Specified by:
getAttributeValuein interfaceAttributeObject- Parameters:
name- Name of the attribute- Returns:
- the value of attribute
name, ornullif it does not exist
-
getAttributes
Description copied from interface:AttributeObjectReturns the list of current attributes for this object.- Specified by:
getAttributesin interfaceAttributeObject- Returns:
-
setAttribute
public void setAttribute(java.lang.String attrName, java.lang.Object newValue)Description copied from interface:AttributeObjectSets a value for a specific attribute.- Specified by:
setAttributein interfaceAttributeObject
-
setAttributes
Description copied from interface:AttributeObjectSets the list of attributes for this object.- Specified by:
setAttributesin interfaceAttributeObject
-
loadDataInstance
public java.lang.Object loadDataInstance(java.lang.String instance, ProjectDataItem item, ProgressUpdater progress) throws java.io.IOExceptionAttempts to load a data instance with the given data item specification.- Parameters:
instance-item-progress-- Returns:
- Throws:
ProjectIOException- If load operation failedjava.io.IOException
-
loadDataInstance
public java.lang.Object loadDataInstance(java.lang.String instance, java.lang.Integer series, ProjectDataItem item, ProgressUpdater progress) throws java.io.IOExceptionAttempts to load a data instance with the given data item specification.- Parameters:
instance-series-item-progress-- Returns:
- Throws:
ProjectIOException- If load operation failedjava.io.IOException
-
getPopupMenu
Description copied from interface:PopupMenuObjectProduces and returns a popup menu for this object.- Specified by:
getPopupMenuin interfacePopupMenuObject- Returns:
-
getPopupMenu
Description copied from interface:PopupMenuObjectProduces and returns a popup menu for this object. Allows an associated list of objects to be passed as an argument.- Specified by:
getPopupMenuin interfacePopupMenuObject- Returns:
-
handlePopupEvent
public void handlePopupEvent(java.awt.event.ActionEvent e)Description copied from interface:PopupMenuObjectHandles an event on this object's popup menu.- Specified by:
handlePopupEventin interfacePopupMenuObject
-
showPopupMenu
public void showPopupMenu(java.awt.event.MouseEvent e)Description copied from interface:PopupMenuObjectShows a popup menu at the point of the givenMouseEvent.- Specified by:
showPopupMenuin interfacePopupMenuObject
-
clone
public java.lang.Object clone()- Overrides:
clonein classjava.lang.Object
-
getDTD
public java.lang.String getDTD()Description copied from interface:XMLObjectReturns the Data Type Declaration (DTD) for this object's XML representationSee http://en.wikipedia.org/wiki/Document_Type_Definition for a description.
-
getXMLSchema
public java.lang.String getXMLSchema()Description copied from interface:XMLObjectReturns the XML schema for this object's XML representation- Specified by:
getXMLSchemain interfaceXMLObject- Returns:
-
getXML
public java.lang.String getXML()Description copied from interface:XMLObjectReturns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)functions to write larger objects to file. -
getXML
public java.lang.String getXML(int tab)Description copied from interface:XMLObjectReturns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)functions to write larger objects to file. -
handleXMLElementStart
public void handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type) throws org.xml.sax.SAXExceptionDescription copied from interface:XMLObjectHandles the start of an XML element.- Specified by:
handleXMLElementStartin interfaceXMLObject- Parameters:
localName- Local name of the elementattributes- Set of element attributestype- TheXMLTypeof this element- Throws:
org.xml.sax.SAXException
-
handleXMLElementEnd
public void handleXMLElementEnd(java.lang.String localName) throws org.xml.sax.SAXExceptionDescription copied from interface:XMLObjectHandles the end of an XML element.- Specified by:
handleXMLElementEndin interfaceXMLObject- Parameters:
localName- Local name of the element- Throws:
org.xml.sax.SAXException
-
handleXMLString
public void handleXMLString(java.lang.String s) throws org.xml.sax.SAXExceptionDescription copied from interface:XMLObjectHandles a string within an XML element.- Specified by:
handleXMLStringin interfaceXMLObject- Parameters:
s- String to handle- Throws:
org.xml.sax.SAXException
-
getLocalName
public java.lang.String getLocalName()Description copied from interface:XMLObjectReturns the local name associated with this XML object.- Specified by:
getLocalNamein interfaceXMLObject- Returns:
-
writeXML
public void writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format ofXMLFormat.Asciiwill be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file, asXMLType.Normal. The default format ofXMLFormat.Asciiwill be used. The basic contract for this method is that it should not write a newline character at its start or end. -
writeXML
public void writeXML(int tab, java.io.Writer writer) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format ofXMLFormat.Asciiwill be used. -
getShortXML
public java.lang.String getShortXML(int tab)Description copied from interface:XMLObjectReturns a short XML representation of this object.- Specified by:
getShortXMLin interfaceXMLObject- Returns:
-