Class WidgetType

  extended by com.dynamide.DynamideObject
      extended by com.dynamide.resource.ContextNode
          extended by com.dynamide.JDOMFile
              extended by com.dynamide.Persistent
                  extended by com.dynamide.WidgetType
All Implemented Interfaces:
IPropertyProvider, IContext, IGet, org.xml.sax.EntityResolver

public class WidgetType
extends Persistent

Each widget type, represented by the WidgetType class, corresponds to an xml file, called something like com.dynamide.button (which may be physically stored as com.dynamide.button.xml), which defines the type. A page can have *instances* of Widgets, which use the class Widget. The legal properties of Widgets are found only in the WidgetType's xml file. The values in the WidgetType's xml file are the default values. All properties found in the Page's persistence override these defaults. There are no run-time-only properties -- all properties found are available at design-time. If a property is present, it will be shown in the PropertyPage. (NOTE: This may be changed in a future build to allow a property to have a subproperty of "hidden", in which case it will be hidden from the property editor.)

The widget's type is determined by its "type" property. This property is mutable in a widget instance, but has a subproperty of "readOnly", so that it can't be changed in the IDE. This solves lots of issues. To change the Widget's type, you must drop a new Widget on the Page. Right now the rule is that the filename is the type, and all widgets are stored in one of the template directories. The storage may change, but the "type" property will stay the same. For this reason, the "type" property doesn't include ".xml". For example, the "type" is "com.dynamide.button", NOT "com.dynamide.button.xml".

This class is also used for Page default properties. The only Widget-specific methods are: generateEmptyWidgetFor(String type, String id);

Nested Class Summary
Nested classes/interfaces inherited from class com.dynamide.Persistent
Field Summary
Fields inherited from class com.dynamide.Persistent
Fields inherited from class com.dynamide.DynamideObject
Constructor Summary
WidgetType(DynamideObject owner, java.lang.String filename, Session session)
Method Summary
 java.lang.String findPropertyDefaultValue(java.lang.String name)
 ScriptEvent fire_onImport()
 ScriptEvent fire_onLoad(Widget widget)
          Fires an event named for the Widget type, but fires it once per loading of widget instance on a Page, so it is a Widget-author plugable event.
 ScriptEvent fire_onPropertyChanged(AbstractWidget widget, ChangeEvent changeEvent)
static org.jdom.Element generateEmptyWidgetFor(java.lang.String type, java.lang.String id)
          Produces something like this: <widget id='"+id+"' > <properties> <property name='type'>"+type+"</property> </properties> </widget>
 java.lang.String getDotName()
 Property getPropertyDefault(java.lang.String name)
 java.lang.String getPropertyDefaultValue(java.lang.String name)
 java.lang.String getType()
 void initializeForSession(Session session)
Methods inherited from class com.dynamide.Persistent
addProperties, addProperty, clonePropertiesTable, dumpHTML, dumpProperties, findEventElement, getEvents, getEventSignature, getEventSource, getEventSource, getEventSourceBody, getHtmlsrcElement, getHtmlsrcElement, getNamedObject, getProperties, getPropertiesElement, getPropertiesTable, getProperty, getPropertyNames, getPropertyStringValue, getPropertyValue, getRawHTMLSource, getRawHTMLSource, getSession, getSourceElement, getSourceElement, hasProperty, isPropertyTrue, isValueTrue, listEvents, listEventsHTML, listProperties, mergeProperties, mergeProperty, removeProperty, removeWidgetContents, removeWidgetContents, resetPropertiesTable, setEventSource, setHTMLSource, setHTMLSourceIE, setNamedObject, setProperty, setProperty, setProperty, setPropertyValue, setSession, sortPropertiesTable, toString
Methods inherited from class com.dynamide.JDOMFile
addError, clearErrors, commitInMemoryChangesToDOM, createJDomXMLOutputter, findFirstElement, findFirstElement, findFirstElementWithAttribute, getAttributeValue, getDocument, getErrors, getFilename, getFullXMLSource, getRootElement, hideEntities, isValidXHTML, isValidXHTMLFragment, listNamedElement, main, output, output, output, output, output, prepare, prettyPrintHTML, prettyPrintHTML, prettyPrintHTMLSafe, read, readFromString, reload, resolveEntity, safeGetElementChildText, saveToFile, saveToFile, select, select, select, selectFirst, selectFirst, setFilename, testPrettyPrint, unHideEntities, valueOf, valueOf
Methods inherited from class com.dynamide.resource.ContextNode
bind, bind, bindAll, bindAllAttributes, bindAttribute, dump, dumpAttributes, dumpContext, find, find, find, firstContext, get, getAttribute, getAttributeCount, getAttributes, getContext, getContextCount, getContexts, getKey, getPermission, hasAttribute, hasContext, listAttributeNames, listAttributeNames, listContextNames, listContextNames, lockPermissions, rebind, rebind, rebindAttribute, remove, removeAttribute, removeFirstContext, setKey, unlockPermissions, update, writeCache
Methods inherited from class com.dynamide.DynamideObject
clearProfiler, dump, expand, finalize, findParentExpander, findParentPage, findParentSession, findTopParentPage, getCategoryID, getID, getNextGetter, getObjectID, getOwner, getProfiler, isDebugEnabled, isInfoEnabled, logDebug, logDebug, logDebug, logDebug, logError, logError, logError, logError, logInfo, logInfo, logInfo, logInfo, logWarn, logWarn, logWarn, logWarn, popLogContext, printf, printProfiler, profileEnter, profileLeave, pushLogContext, setDotName, setID, setNextGetter, setObjectID, setOwner, sprintf, useProfiler, walkParents
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait

Constructor Detail


public WidgetType(DynamideObject owner,
                  java.lang.String filename,
                  Session session)
           throws org.jdom.JDOMException,
Method Detail


public void initializeForSession(Session session)


public java.lang.String getType()


public java.lang.String getDotName()
getDotName in class DynamideObject


public Property getPropertyDefault(java.lang.String name)


public java.lang.String getPropertyDefaultValue(java.lang.String name)


public java.lang.String findPropertyDefaultValue(java.lang.String name)


public ScriptEvent fire_onLoad(Widget widget)
Fires an event named for the Widget type, but fires it once per loading of widget instance on a Page, so it is a Widget-author plugable event. It is called from the code that also fires [widgetID]_onLoad which is an application-programmer pluggable event.


public ScriptEvent fire_onImport()


public ScriptEvent fire_onPropertyChanged(AbstractWidget widget,
                                          ChangeEvent changeEvent)


public static org.jdom.Element generateEmptyWidgetFor(java.lang.String type,
                                                      java.lang.String id)
Produces something like this: <widget id='"+id+"' > <properties> <property name='type'>"+type+"</property> </properties> </widget>

Copyright 2001-2013 DYNAMIDE.COM. All Rights Reserved.