diff options
author | Tor Norbye <tnorbye@google.com> | 2012-04-04 18:36:45 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2012-04-05 12:04:22 -0700 |
commit | 765e52e2d30d0754625b8c7af6c36e93612f15be (patch) | |
tree | c56a08ff179924eff51f0020fe530c8fd895406b /propertysheet/README.txt | |
parent | b33fa4c8ce6b3d2c10eaa92c5c26019d7326bd4c (diff) | |
download | eclipse-windowbuilder-765e52e2d30d0754625b8c7af6c36e93612f15be.tar.gz |
Add WindowBuilder propertysheet code. See README.txt for details.
This reverts commit b33fa4c8ce6b3d2c10eaa92c5c26019d7326bd4c.
Change-Id: I763357c42f933a52eda9b52988b785e092eac424
Diffstat (limited to 'propertysheet/README.txt')
-rw-r--r-- | propertysheet/README.txt | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/propertysheet/README.txt b/propertysheet/README.txt new file mode 100644 index 0000000..6c2feab --- /dev/null +++ b/propertysheet/README.txt @@ -0,0 +1,105 @@ +WINDOWBUILDER PROPERTY SHEET LIBRARY +------------------------------------- + +This project is a fork of a subset of the WindowBuilder Eclipse +plugin: http://www.eclipse.org/windowbuilder/ + +Specifically, it contains the subset of WindowBuilder related to the +propertysheet, intended for reuse in AOSP by the ADT plugin. + +The fork was modified as follows: +* Started with revision 424 from the trunk: + http://dev.eclipse.org/svnroot/tools/org.eclipse.windowbuilder/trunk + +* Extracted the property package from org.eclipse.wb.core: + src/org/eclipse/wb/internal/core/model/property + and then everything it transitively references. This turns out to + be a lot. I then started pruning out references to code we don't + need, such as support for editing Java constructs such as enums, or + dealing with a Java code model, etc. This means some of the files + have been edited to remove methods and fields. For example, the + property category code was modified to no longer support the + persistent storage of categories. + +* The WindowBuilder code depended on a number of Apache Commons + libraries such as collections, lang, etc. Since ADT already uses + Guava, which provides a lot of the same functionality, I replaced + all the Commons calls with Guava calls in order to avoid having to + make ADT depend on (and load at runtime) the Commons libraries. + +* Finally, the propertysheet code was made into a library instead of a + plugin, such that it can be loaded into the ADT plugin. This meant + mostly rewriting the DesignerPlugin class. It has kept its name + (since a lot of code references it for logging, resource loading + etc), but it is no longer an actual plugin. Instead it has init and + dispose methods for use by the AdtPlugin, and for logging it + delegates to the ADT plugin, etc. + +* Icons were moved into the DesignerPlugin package such that the + resource loading code could use a relative path, since with an + absolute path it would be looking in the embedding plugin's + resources. + +* To be consistent with the ADT codebase, I converted the files from + \r\n to \n newlines. Other than that, all formatting was left + unmodified. + +* Removed unused resources such as unreferences colors from + IColorConstants, unneeded messages from ModelMessages, and so on. + +* Note also that this Eclipse project is using a modified version of + the standard ADT Eclipse compiler settings: methods overriding other + methods and interfaces *without* using an @Override annotation are + ignored, since they were not using @Override annotations in the + WindowBuilder source base. + + +ADT ENHANCEMENTS +------------------ +* I also modified the propertysheet in a few ways to add features + needed by ADT. These are all bracketed in the codebase with + // BEGIN ADT MODIFICATIONS + ... + // END ADT MODIFICATIONS + + Specifically, I made the property table able to expand all and + collapse all. Properties have sorting priorities, and have separate + name and title attributes (and tooltips show the property name + rather than the title.) Text property editors allow field completion + by providing IContentProposalProvider (and optionally + ILabelProvider) instances via their getAdapter method. And the + property table will color values differently based on whether the + property is modified. (This allows us to draw default attributes + differently). Finally, the propertysheet now supports "expand by + default" (and for certain categories to be excluded, such as + deprecations). + + +UPDATES +-------- + +We should keep an eye on the propertysheet code in WindowBuilder and +migrate bug fixes and feature enhancements. To do that, first check +out revision 424 from +http://dev.eclipse.org/svnroot/tools/org.eclipse.windowbuilder/trunk +That's the same baseline that this fork was based on. +You can limit the checkout to just the org.eclipse.wb.core tree. + +Then check out the newest revision of WindowBuilder in a separate +directory. + +Now diff the two trees. Look for diffs in the packages related to the +propertysheet; this is going to be the packages that are present in +this library. If any of the diffs are related to the propertysheet or +supporting code, apply them to this library, and then update this +document to contain the new baseline revision (use 'svnversion .' to +get the number). Note that the diffs may need some rewriting if they +reference Apache Commons code. + +Note that the ComponentsPropertiesPage.java class which is the main +window in WindowBuilder is not used in our implementation; we instead +have the PropertySheetPage class in ADT, so changes in that class +should be checked to see whether they apply to our property sheet page +(which uses the PropertyTable in a similar way, but obviously is based +around our own UI model rather than the WindowBuilder ObjectInfo +model. |