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
,Cloneable
,Runnable
,IAdaptable
public class FilePropCnr extends FileURIPropCnr implements IPropDesigner, 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.FileURIPropCnr
EMPTY_ARRAY
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_INCLUDE_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
ConstructorDescriptionCreates a FilePropCnr for the designer with the specified name with a null value.FilePropCnr
(Atom propertyAtom, IFile file) Creates a FilePropCnr for the designer with the specified name with a null value.Method Summary
Modifier and TypeMethodDescriptionvoid
attachEditor
(PropEditorPart editor) Attaches an Editor to this file.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.Gets the active or topmost attached editor.Gets the attached editors.Gets the data property container for the file.Gets the Designer Extension for Properties.getFile()
Gets the file for this property.Gets the file name (full path name) for this property.getIFile()
Gets the file.long
Gets the file modification stamp of the resource if found.long
Returns the modification time of the resource.Gets the Saveable instance for this file.long
getSize()
Returns the size of the resource in bytes.getURL()
Gets the file name URL for this property.boolean
Checks for active editors.boolean
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
Called when a property is disposed of by delete/remove in a container, or by the dispose method.protected String
paramString
(boolean includeFullProperties) Returns the parameter string representing the state of this event.void
run()
Invoked to check for dirty flag.void
saveFile
(IProgressMonitor monitor) Saves the file if a Shell is not available.Methods inherited from class com.iizix.prop.FileURIPropCnr
equalsTree, equalsTree, getChildReferencePropName, getClientResourceString, getPropFromReference, getPropReferenceTarget, hashCode, isPropFile, isPropFolder, setResolvedURL
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, enablePropCommunication, enablePropHashMap, 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, getRetargetedVerifyContainer, getString, getString, getString, getString, getValueClasses, getVSReference, hasFocus, hasSendData, initializeElement, initializeExtendsFramework, initializeProp, initializeValue, initPropCnr, insertProp, insertProp2, isChild, isExtendsOverriden, isExtendsPropertyValid, isExtendsRoot, isPropAddRemoveAllowed, isPropCommunicating, isPropExtended, list, list, logPropNotFound, maybeAddProp, onInsertProp, onPropRemoved, onPropTreeInitialized, onReferenceEvent, onVirtualContainerCreated, onVirtualizationCompleted, 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, appendProp, convertPropError, dispose, equals, equals, equalsErrors, equalsObj, equalsPropValue, equalValues, 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, getReferencePropNameNoAssert, getRelativePropName, getRootFromName, getRootName, getRootParent, getRootParentNoAssert, getTreeLock, hasChanged, hasCircularReferencesError, hasPrivateChangeEventProp, hasPropError, hasPropTreeError, info, info, initializeGElement, initializeGProp, isDisposed, isPropChildOf, isPropClientCreated, isPropCreateRequired, isPropExtended, isPropExtendsFinal, isPropExtendsPrivate, isPropExtendsPrivateInRoot, isPropExtendsPrivateInRoot, isPropForEditor, isPropNullable, isPropPrivate, isPropPrivateAtCreation, isPropReadOnly, isPropReferenceTreeValid, isPropRoot, isPropRootLoading, isPropRootTreeModificationsAllowed, isPropUSER, isPropValueTreeLockNeeded, isPropVirtualized, isPropVirtualizing, isPropVolatile, isPropVolatileOrEditorOnly, isProxied, isSibling, list, list, list, mapAliasToReference, mapAliasToReference, mapReferenceToAlias, mapReferenceToAlias, mapReferenceToProjectRelative, modifyPropValue, moveProp, moveProp, moveProp, onEvent, onPrepare, onPropInvalidateCache, onPropParentChanged, onPropValueSet, onRemoteEvent, 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, warning, warning, warning
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, getRelativePropName, getRootParent, getTreeLock, getValueClasses, getVSReference, hasChanged, hasCircularReferencesError, 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, isSibling, 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, 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, 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 Details
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
Creates a FilePropCnr for the designer with the specified name with a null value.- Parameters:
propertyAtom
- the property atom.file
- the file.
Method Details
fromProperty
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
Gets the data property container for the file.- Returns:
- The data property container (Atom.DATA_CONTAINER), or null for none.
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
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
Attaches an Editor to this file.detachEditor
Detaches an Editor from this file.hasActiveEditors
public boolean hasActiveEditors()Checks for active editors.getAttachedEditors
Gets the attached editors.getActiveEditor
Gets the active or topmost attached editor.- Returns:
- The editor part, or null for none.
getURL
Gets the file name URL for this property.- Overrides:
getURL
in classFileURIPropCnr
- Returns:
- The URL or null for none.
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
Gets the file.- Returns:
- The file resource or null if not found.
getFileName
Gets the file name (full path name) for this property.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
Clone must be overridden.- Overrides:
clone
in classFileURIPropCnr
- Throws:
CloneNotSupportedException
- If a subclass doesn't allow cloning, e.g. the client properties.
onEventSelf
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.saveFile
Saves the file if a Shell is not available.- Parameters:
monitor
- The progress monitor.- Throws:
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.
paramString
Returns the parameter string representing the state of this event. This string is useful for debugging. Subclasses adds extra information to the string by preceding it with a comma followed by the extra information.- Overrides:
paramString
in classFileURIPropCnr
- Parameters:
includeFullProperties
- Flag to include full properties or not.- Returns:
- the parameter string of this event.