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 boolean
applyInstances(boolean remove)
boolean
applySubdirs(boolean remove)
void
attributeUpdated(AttributeEvent e)
Called when an Attribute's value has been updated.java.lang.Object
clone()
protected java.io.File
getAbsoluteInstanceDir()
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.AttributeList
getAttributes()
Returns the list of current attributes for this object.java.lang.Object
getAttributeValue(java.lang.String name)
Gets the value of attributename
, ornull
if it does not exist.java.lang.String
getDTD()
Returns the Data Type Declaration (DTD) for this object's XML representationProjectInstance
getInstance(int index)
ProjectInstance
getInstance(java.lang.String name)
java.lang.String
getInstanceDir()
java.util.ArrayList<java.lang.String>
getInstanceNames()
java.lang.String
getInstancePrefix()
java.util.ArrayList<ProjectInstance>
getInstances()
Returns a (copied) array of the instances in this projectjava.lang.String
getInstanceSuffix()
java.lang.String
getLocalName()
Returns the local name associated with this XML object.java.lang.String
getName()
Gets the name for this object.javax.swing.Icon
getObjectIcon()
Returns theIcon
associated with this object.InterfacePopupMenu
getPopupMenu()
Produces and returns a popup menu for this object.InterfacePopupMenu
getPopupMenu(java.util.List<java.lang.Object> selected)
Produces and returns a popup menu for this object.java.lang.String
getProjectDir()
java.io.File
getRootDir()
java.lang.String
getShortXML(int tab)
Returns a short XML representation of this object.java.util.ArrayList<ProjectDirectory>
getSubdirs()
java.lang.String
getTreeLabel()
Returns the label text to appear in a tree node.java.lang.String
getXML()
Returns this object's XML representation as a single string.java.lang.String
getXML(int tab)
Returns this object's XML representation as a single string.java.lang.String
getXMLSchema()
Returns the XML schema for this object's XML representationvoid
handlePopupEvent(java.awt.event.ActionEvent e)
Handles an event on this object's popup menu.void
handleXMLElementEnd(java.lang.String localName)
Handles the end of an XML element.void
handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
Handles the start of an XML element.void
handleXMLString(java.lang.String s)
Handles a string within an XML element.boolean
hasInstances()
void
hasInstances(boolean b)
protected void
init()
java.lang.Object
loadDataInstance(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.Object
loadDataInstance(java.lang.String instance, ProjectDataItem item, ProgressUpdater progress)
Attempts to load a data instance with the given data item specification.void
setAttribute(java.lang.String attrName, java.lang.Object newValue)
Sets a value for a specific attribute.void
setAttributes(AttributeList thisList)
Sets the list of attributes for this object.void
setFromProject(InterfaceProject project)
Sets this project from another project.boolean
setInstanceDir(java.lang.String dir)
void
setInstancePrefix(java.lang.String prefix)
void
setInstances()
void
setInstances(java.util.ArrayList<ProjectInstance> instances)
void
setInstancesFromNames(java.util.ArrayList<java.lang.String> names)
void
setInstanceSuffix(java.lang.String suffix)
void
setName(java.lang.String name)
Sets the name for this object.boolean
setProjectDir(java.lang.String dir)
boolean
setRootDir(java.io.File file)
void
setSubdirectories(java.util.ArrayList<ProjectDirectory> paths)
Sets the subdirectory list from a list of paths.void
setSubdirectoriesFromPaths(java.util.ArrayList<java.lang.String> paths)
void
setSubdirs()
void
setTreeNode(InterfaceTreeNode node)
Sets the children for this node'sInterfaceTreeNode
.void
showPopupMenu(java.awt.event.MouseEvent e)
Shows a popup menu at the point of the givenMouseEvent
.boolean
updateFileSystem(boolean remove)
void
writeXML(int tab, java.io.Writer writer)
Writes the XML representation of this object to file.void
writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)
Writes the XML representation of this object to file, asXMLType.Normal
.void
writeXML(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, updateTreeNodes
Methods 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:IconObject
Returns theIcon
associated with this object.- Specified by:
getObjectIcon
in 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:NamedObject
Sets the name for this object.- Specified by:
setName
in interfaceNamedObject
- Overrides:
setName
in classAbstractInterfaceObject
-
getName
public java.lang.String getName()Description copied from interface:NamedObject
Gets the name for this object.- Specified by:
getName
in interfaceNamedObject
- Overrides:
getName
in 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:AttributeListener
Called when an Attribute's value has been updated.- Specified by:
attributeUpdated
in interfaceAttributeListener
-
getTreeLabel
public java.lang.String getTreeLabel()Description copied from interface:TreeObject
Returns the label text to appear in a tree node.- Specified by:
getTreeLabel
in interfaceTreeObject
- Overrides:
getTreeLabel
in classAbstractInterfaceObject
- Returns:
-
setTreeNode
Description copied from interface:TreeObject
Sets the children for this node'sInterfaceTreeNode
.- Specified by:
setTreeNode
in interfaceTreeObject
- Overrides:
setTreeNode
in 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:AttributeObject
Returns a specific attribute for this object.- Specified by:
getAttribute
in interfaceAttributeObject
- Returns:
-
getAttributeValue
public java.lang.Object getAttributeValue(java.lang.String name)Description copied from interface:AttributeObject
Gets the value of attributename
, ornull
if it does not exist.- Specified by:
getAttributeValue
in interfaceAttributeObject
- Parameters:
name
- Name of the attribute- Returns:
- the value of attribute
name
, ornull
if it does not exist
-
getAttributes
Description copied from interface:AttributeObject
Returns the list of current attributes for this object.- Specified by:
getAttributes
in interfaceAttributeObject
- Returns:
-
setAttribute
public void setAttribute(java.lang.String attrName, java.lang.Object newValue)Description copied from interface:AttributeObject
Sets a value for a specific attribute.- Specified by:
setAttribute
in interfaceAttributeObject
-
setAttributes
Description copied from interface:AttributeObject
Sets the list of attributes for this object.- Specified by:
setAttributes
in 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:PopupMenuObject
Produces and returns a popup menu for this object.- Specified by:
getPopupMenu
in interfacePopupMenuObject
- Returns:
-
getPopupMenu
Description copied from interface:PopupMenuObject
Produces and returns a popup menu for this object. Allows an associated list of objects to be passed as an argument.- Specified by:
getPopupMenu
in interfacePopupMenuObject
- Returns:
-
handlePopupEvent
public void handlePopupEvent(java.awt.event.ActionEvent e)Description copied from interface:PopupMenuObject
Handles an event on this object's popup menu.- Specified by:
handlePopupEvent
in interfacePopupMenuObject
-
showPopupMenu
public void showPopupMenu(java.awt.event.MouseEvent e)Description copied from interface:PopupMenuObject
Shows a popup menu at the point of the givenMouseEvent
.- Specified by:
showPopupMenu
in interfacePopupMenuObject
-
clone
public java.lang.Object clone()- Overrides:
clone
in classjava.lang.Object
-
getDTD
public java.lang.String getDTD()Description copied from interface:XMLObject
Returns 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:XMLObject
Returns the XML schema for this object's XML representation- Specified by:
getXMLSchema
in interfaceXMLObject
- Returns:
-
getXML
public java.lang.String getXML()Description copied from interface:XMLObject
Returns 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:XMLObject
Returns 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:XMLObject
Handles the start of an XML element.- Specified by:
handleXMLElementStart
in interfaceXMLObject
- Parameters:
localName
- Local name of the elementattributes
- Set of element attributestype
- TheXMLType
of this element- Throws:
org.xml.sax.SAXException
-
handleXMLElementEnd
public void handleXMLElementEnd(java.lang.String localName) throws org.xml.sax.SAXExceptionDescription copied from interface:XMLObject
Handles the end of an XML element.- Specified by:
handleXMLElementEnd
in 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:XMLObject
Handles a string within an XML element.- Specified by:
handleXMLString
in interfaceXMLObject
- Parameters:
s
- String to handle- Throws:
org.xml.sax.SAXException
-
getLocalName
public java.lang.String getLocalName()Description copied from interface:XMLObject
Returns the local name associated with this XML object.- Specified by:
getLocalName
in interfaceXMLObject
- Returns:
-
writeXML
public void writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes 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.Ascii
will be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes the XML representation of this object to file, asXMLType.Normal
. The default format ofXMLFormat.Ascii
will 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:XMLObject
Writes 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.Ascii
will be used. -
getShortXML
public java.lang.String getShortXML(int tab)Description copied from interface:XMLObject
Returns a short XML representation of this object.- Specified by:
getShortXML
in interfaceXMLObject
- Returns:
-