Package com.iizigo.prop
Class FilePropCnr
- java.lang.Object
- com.iizix.prop.GProp<GProp<?>[]>
- com.iizix.prop.PropCnr
- com.iizix.prop.FileURIPropCnr
- com.iizigo.prop.FilePropCnr
- All Implemented Interfaces:
IPropDesigner
,ISynchronizeEclipseMarkers
,EventListener
,IGProp<GProp<?>[]>
,IPropCnr
,ISynchronizeMarkers
,java.lang.Cloneable
,java.lang.Runnable
,org.eclipse.core.runtime.IAdaptable
public class FilePropCnr extends FileURIPropCnr implements IPropDesigner, java.lang.Runnable, ISynchronizeEclipseMarkers
A PropCnr that can refer to an IFile object can be loaded and saved as well as checked for modification from last time. An exception can also be set for load errors.- Author:
- Christopher Mindus
Field Summary
Fields inherited from class com.iizix.prop.PropCnr
EMPTY, EMPTY_CLASSES, EMPTY_CNRS, EXTENDS_FRAMEWORK_ERROR_ID
Fields inherited from class com.iizix.prop.GProp
GPDEBUG, PROP_ATTR_STRING_EDITOR_PROP, PROP_ATTR_STRING_ERRORED_NAME, PROP_ATTR_STRING_EXTENDS, PROP_ATTR_STRING_EXTENDS_FINAL, PROP_ATTR_STRING_EXTENDS_PRIVATE, PROP_ATTR_STRING_NULLABLE, PROP_ATTR_STRING_PRIVATE, PROP_ATTR_STRING_PRIVATE_CHANGE_EVENT, PROP_ATTR_STRING_READ_ONLY, PROP_USER_1, PROP_USER_2
Fields inherited from interface com.iizix.prop.IGProp
EQC_ERROR_IGNORE_ALL, EQC_ERROR_IGNORE_REFERENCES, EQC_IGNORE_ARRAY, EQC_IGNORE_VOLATILE_OR_EDITOR, EQC_PRIVATE, EQC_SAVE_FILE, EXT_CONTAINER_EXTENDS, EXT_CONTAINER_EXTENDS_VALID, EXT_EXTENDED, EXT_FINAL, EXT_OVERRIDES, EXT_OVERRIDES_FINAL_ERR, EXT_PRIVATE
Constructor Summary
Constructors Constructor Description FilePropCnr()
Creates a FilePropCnr for the designer with the specified name with a null value.FilePropCnr(Atom propertyAtom, org.eclipse.core.resources.IFile file)
Creates a FilePropCnr for the designer with the specified name with a null value.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
attachEditor(PropEditorPart editor)
Attaches an Editor to this file.FilePropCnr
clone()
Clone must be overridden.void
detachEditor(PropEditorPart editor)
Detaches an Editor from this file.static FilePropCnr
fromProperty(GProp<?> property)
Gets a FilePropCnr from a property that should be the FilePropCnr itself or a child.PropEditorPart
getActiveEditor()
Gets the active or topmost attached editor.PropEditorPart[]
getAttachedEditors()
Gets the attached editors.PropCnr
getDataContainer()
Gets the data property container for the file.ResourceDesignerProp
getDesigner()
Gets the Designer Extension for Properties.java.io.File
getFile()
Gets the file for this property.java.lang.String
getFileName()
Gets the file name (full path name) for this property.org.eclipse.core.resources.IFile
getIFile()
Gets the file.long
getModificationStamp()
Gets the file modification stamp of the resource if found.long
getModificationTime()
Returns the modification time of the resource.FilePropSaveable
getSaveable()
Gets the Saveable instance for this file.long
getSize()
Returns the size of the resource in bytes.java.net.URL
getURL()
Gets the file name URI for this property.boolean
hasActiveEditors()
Checks for active editors.boolean
isAssetFile()
Checks if this file is located in the Assets directory.void
onCompletedLoading(PropCnr dataContainerToBe)
Called when the file completed its loading from the Module model.void
onEventSelf(GEvent event)
Called when a property event is send to this property.protected void
onPropDispose()
Called when a property is disposed of by delete/remove in a container, or by the dispose method.void
run()
Invoked to check for dirty flag.void
saveFile(org.eclipse.core.runtime.IProgressMonitor monitor)
Saves the file if a Shell is not available.Methods inherited from class com.iizix.prop.FileURIPropCnr
getChildReferencePropName, getPropFromReference, getPropReferenceTarget, isPropFile, isPropFolder
Methods inherited from class com.iizix.prop.PropCnr
__transferChildProps, addPredefinedProps, addProp, addProp, addProp2, addProp2, appendPropValue, canRequestFocus, completeVirtualize, containsProp, containsProp, convertLoadedProp, couldRequestFocusIfVirtualized, createCopyOfAtom, createUniqueAtom, createUniqueAtom, createUniqueAtom, createVSReference, doPropEqualsArrayValues, doVirtualizePropCnr, enablePropCommunication, enablePropHashMap, equalsTree, equalsTree, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getBool, getBool, getBool, getBool, getChildPropError, getChildPropError, getChildPropErrorSeverity, getChildPropErrorSeverity, getErrorsProp, getExtendsContainer, getExtendsError, getExtendsName, getExtendsOverride, getExtendsPossibleClasses, getFirstProp, getFirstProp, getFocusEngine, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getNumber, getNumber, getNumber, getNumber, getPossibleChildren, getPredefinedProps, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getPropBaseReference, getPropCnr, getPropCount, getPropCount, getPropIndex, getPropIndex, getPropIndexes, getProps, getProps, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue0, getReferences, getRetargetedVerifyContainer, getString, getString, getString, getString, getValueClasses, getVSReference, hasFocus, hasSendData, initializeElement, initializeExtendsFramework, initializeProp, initializeValue, initPropCnr, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsPropertyValid, isExtendsRoot, isPropAddRemoveAllowed, isPropCommunicating, isPropExtended, isSibling, list, list, logPropNotFound, maybeAddProp, onInsertProp, onPropRemoved, onPropTreeInitialized, onReferenceEvent, paramString, prepare, removeAllProps, removeAllProps2, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, reorderProps, replaceProps, requestFocus, requestFocus, requestFocusEx, requestFocusEx, resolveReferences, resolveRuntimeReferences, setBool, setBool, setBool, setBool, setCreateRequiredProp, setExtendsName, setExtendsOverride, setInt, setInt, setInt, setLong, setLong, setLong, setLong, setNumber, setNumber, setNumber, setNumber, setProp, setProp, setProp, setProp2, setProp2, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setString, setString, setString, setString, shouldCreateProps, shouldSerializeToXML, toElementString, toNativeValue0, usePropHashMap, usesPropIndex, validateChildPropInValue, validateClassInstances, validatePropType, validatePropValue, verify, verifyInternalUseOnly, verifyTree, virtualize
Methods inherited from class com.iizix.prop.GProp
addPropError, addPropListener, convertPropError, dispose, equals, equals, equalsErrors, equalsObj, equalsPropValue, equalValues, extendsClone, finalize, fine, fine, finer, finer, finest, finest, fromElementString, getAliasName, getAppSessionGyro, getAppWorker, getAtomPath, getAttribute, getClientSessionGyro, getClientWorker, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropName, getFullPropNameDebug, getFullPropNameDebug, getListeners, getModuleFolder, getModuleFolder, getParent, getParent, getProjectName, getPropAtom, getPropError, getPropError, getPropErroredName, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromPath, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getPropValueObject, getReferencePropName, getRelativePropName, getRootFromName, getRootName, getRootParent, getRootParent, getTreeLock, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropForEditor, isPropNullable, isPropPrivate, isPropPrivateAtCreation, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, modifyPropValue, moveProp, moveProp, moveProp, onEvent, onPrepare, onPropInvalidateCache, onPropParentChanged, onPropValueSet, onRemoteEvent, onVirtualizationCompleted, onVirtualized, paramValue, post, post, removePropError, removePropListener, removePropUSER, renameProp, renameProp2, resetChangedTree, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPrivateCreateRequiredProp, setPropError, setPropErroredName, setPropExtended, setPropExtendsFinal, setPropExtendsPrivate, setPropForEditor, setPropNullable, setPropPrivate, setPropReadOnly, setPropUSER, setPropValue, setPropValue, setPropValue, setPropValueIncognito, setPropVolatile, severe, severe, severe, shouldSerializeToXML, throwIfReadOnly, toNativeValue, toString, toString, triggerRemoteEvent, triggerRemoteEvent, validateProp, verifyHasPropertyItem, warning, warning, warning
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.iizix.prop.IGProp
addPropError, addPropListener, dispose, equals, fine, fine, finer, finer, finest, finest, fromElementString, getAppSessionGyro, getAtomPath, getClientSessionGyro, getConstraints, getEnvironment, getErroredPropItems, getErroredProps, getErrorsProp, getExtendsRootContainer, getFullPropName, getFullPropNameDebug, getModuleFolder, getModuleFolder, getParent, getParent, getPropAtom, getPropBaseReference, getPropError, getPropError, getPropErrorSeverity, getPropExtendsFlags, getPropFromPath, getPropFromReference, getPropIndex, getPropName, getPropPath, getPropPath, getPropRootPropMgr, getPropTreeErrorSeverity, getPropValue, getPropValue, getReferencePropName, getReferences, getRelativePropName, getRootParent, getTreeLock, getValueClasses, getVSReference, hasChanged, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCommunicating, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropFile, isPropFolder, isPropNullable, isPropPrivate, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropVirtualized, list, list, list, list, list, mapAliasToReference, mapReferenceToAlias, mapReferenceToProjectRelative, moveProp, moveProp, moveProp, onEvent, onPropTreeInitialized, onRemoteEvent, removePropError, removePropListener, renameProp, resolveRuntimeReferences, setChanged, setConstraints, setConstraints, setParent, setPrivateChangeEventProp, setPropError, setPropExtendsFinal, setPropExtendsPrivate, setPropNullable, setPropPrivate, setPropReadOnly, setPropValue, setPropValue, severe, severe, severe, toElementString, toNativeValue, triggerRemoteEvent, triggerRemoteEvent, validateProp, validatePropType, validatePropValue, verify, verifyHasPropertyItem, warning, warning, warning
Methods inherited from interface com.iizix.prop.IPropCnr
addProp, addProp, addProp2, addProp2, canRequestFocus, canRequestFocus, canRequestFocus, containsProp, containsProp, couldRequestFocusIfVirtualized, couldRequestFocusIfVirtualized, couldRequestFocusIfVirtualized, createCopyOfAtom, createUniqueAtom, createUniqueAtom, enablePropCommunication, enablePropHashMap, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getAllProps, getBool, getBool, getBool, getBool, getChildPropError, getChildPropError, getChildPropErrorSeverity, getChildPropErrorSeverity, getErrorsProp, getExtendsError, getExtendsName, getExtendsPossibleClasses, getFirstProp, getFirstProp, getFocusEngine, getInt, getInt, getInt, getInt, getLong, getLong, getLong, getLong, getNumber, getNumber, getNumber, getNumber, getPossibleChildren, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getProp, getPropCnr, getPropCount, getPropIndex, getPropIndex, getPropIndexes, getProps, getProps, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getPropValue, getString, getString, getString, getString, hasFocus, initializeExtendsFramework, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsRoot, isPropAddRemoveAllowed, isPropExtended, isSibling, removeAllProps, removeAllProps2, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, removeProp2, reorderProps, requestFocus, requestFocusEx, setBool, setBool, setBool, setBool, setExtendsName, setExtendsOverride, setInt, setInt, setInt, setLong, setLong, setLong, setLong, setNumber, setNumber, setNumber, setNumber, setProp, setProp, setProp, setProp2, setProp2, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setPropValue, setString, setString, setString, setString, usePropHashMap, usesPropIndex, validateClassInstances
Methods inherited from interface com.iizigo.prop.IPropDesigner
findIResource, getAdapter
Methods inherited from interface com.iizigo.prop.ISynchronizeEclipseMarkers
synchronizeEclipseMarkers
Constructor Detail
FilePropCnr
public FilePropCnr()
Creates a FilePropCnr for the designer with the specified name with a null value. This constructor is only used by the factory to check validity, and nothing else. Never instantiate this class.
FilePropCnr
public FilePropCnr(Atom propertyAtom, org.eclipse.core.resources.IFile file)
Creates a FilePropCnr for the designer with the specified name with a null value.- Parameters:
propertyAtom
- the property atom.file
- the file.
Method Detail
fromProperty
public static FilePropCnr fromProperty(GProp<?> property)
Gets a FilePropCnr from a property that should be the FilePropCnr itself or a child.- Parameters:
property
- The property.- Returns:
- The FilePropCnr of the property, null if not found.
getDataContainer
public PropCnr getDataContainer()
Gets the data property container for the file.- Returns:
- The data property container (Atom.DATA_CONTAINER), or null for none.
getSaveable
public FilePropSaveable getSaveable()
Gets the Saveable instance for this file.- Returns:
- The Saveable instance, null when file hasn't been loaded yet (thus this call is too early and this shouldn't happen, otherwise the Editor requesting the Saveable has a problem with it's delayed start-up when projects are loaded or workbench started).
onCompletedLoading
public void onCompletedLoading(PropCnr dataContainerToBe)
Called when the file completed its loading from the Module model.- Parameters:
dataContainerToBe
- The FilePropCnr data container to-be, not yet added, null for default.
onPropDispose
protected void onPropDispose()
Called when a property is disposed of by delete/remove in a container, or by the dispose method.This call is done just at the end of the delete/remove routine in the container, without synchronization.
During this call, whatever components that e.g. the client needs to disposed of is done.
Subclasses needing to perform some intelligent operations upon deletion should do it by overloading this method and always call the
super.onPropDispose()
method.- Overrides:
onPropDispose
in classPropCnr
attachEditor
public void attachEditor(PropEditorPart editor)
Attaches an Editor to this file.
detachEditor
public void detachEditor(PropEditorPart editor)
Detaches an Editor from this file.
hasActiveEditors
public boolean hasActiveEditors()
Checks for active editors.
getAttachedEditors
public PropEditorPart[] getAttachedEditors()
Gets the attached editors.
getActiveEditor
public PropEditorPart getActiveEditor()
Gets the active or topmost attached editor.- Returns:
- The editor part, or null for none.
getURL
public java.net.URL getURL()
Gets the file name URI for this property.- Overrides:
getURL
in classFileURIPropCnr
getFile
public java.io.File getFile()
Gets the file for this property.- Overrides:
getFile
in classFileURIPropCnr
- Returns:
- null if not found.
getModificationStamp
public long getModificationStamp()
Gets the file modification stamp of the resource if found.- Returns:
- -1 if not found.
getIFile
public org.eclipse.core.resources.IFile getIFile()
Gets the file.- Returns:
- The file resource or null if not found.
getFileName
public java.lang.String getFileName()
Gets the file name (full path name) for this property.
getDesigner
public ResourceDesignerProp getDesigner()
Gets the Designer Extension for Properties.- Specified by:
getDesigner
in interfaceIPropDesigner
- Returns:
- The instance of the Designer Extension.
isAssetFile
public boolean isAssetFile()
Checks if this file is located in the Assets directory. This is only handled in the Editor.- Overrides:
isAssetFile
in classFileURIPropCnr
- Returns:
- Always true in the Server or Client.
clone
public FilePropCnr clone() throws java.lang.CloneNotSupportedException
Clone must be overridden.- Overrides:
clone
in classFileURIPropCnr
- Throws:
java.lang.CloneNotSupportedException
- If a subclass doesn't allow cloning, e.g. the client properties.
onEventSelf
public void onEventSelf(GEvent event)
Called when a property event is send to this property.A subclass can override this method to perform appropriate processing and is not required to call
super.onEventSelf(e)
.- Specified by:
onEventSelf
in interfaceIGProp<GProp<?>[]>
- Overrides:
onEventSelf
in classGProp<GProp<?>[]>
- Parameters:
event
- The property event.
run
public void run()
Invoked to check for dirty flag.- Specified by:
run
in interfacejava.lang.Runnable
saveFile
public void saveFile(org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
Saves the file if a Shell is not available.- Parameters:
monitor
- The progress monitor.- Throws:
org.eclipse.core.runtime.CoreException
- For file errors.
getSize
public long getSize()
Returns the size of the resource in bytes.- Overrides:
getSize
in classFileURIPropCnr
- Returns:
- The size, or -1 if resource is not found.
getModificationTime
public long getModificationTime()
Returns the modification time of the resource.- Overrides:
getModificationTime
in classFileURIPropCnr
- Returns:
- The modification time, or zero if resource is not found.