|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK 11g Release 2 (11.1.2.2.0) E17493-03 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object
oracle.ide.externaltools.macro.MacroExpander
public abstract class MacroExpander
Macro expanders are registered with the MacroRegistry and can be used to expand macros prior to running external tools.
This interface extends Displayable
. The getShortLabel()
method is used when this macro is displayed to users in the external tools UI. When a longer description of the macro is displayed to users, the getLongLabel()
method is used.
The getMacro()
method should be used to return a short string that will be recognized in input strings as belonging to this macro expander. For example, if the getMacro() method returns "mymacro", then the sequence "${mymacro}" will be recognized in input strings as belonging to this expander. Note that the string should not contain the macro escape characters "${...}".
Implement the expand( Context )
method to actually expand an IDE context into a String. Whenever possible, this should happen automatically, however it's acceptable to display UI (e.g. a prompt) while expanding a macro - macro expansion occurs just prior to running external tools. Note: as of 11.1.2.0.0 Macros now must be registered in the extension.xml file in a trigger hook section where most of the information will be defined (short/long label, macro, tooltip, isDirectoryMacro) The methods to get this information are now effectively no-ops in this class as they will be handled by LazyMacroExpander which will wrap this class and resolve these from the registered data. Thus the following methods must be implemented but can essentially do nothing as they will be provided by the wrapper class LazyMacroExpander which will resolve them based on declarative data: - getShortLabel() - getLongLabel() - getIcon() - getToolTipText() - isAvailableForType() - isDirectoryMacro() - getMacro()
Constructor Summary | |
---|---|
MacroExpander() |
Method Summary | |
---|---|
abstract java.lang.String |
expand(Context context) Expand the specified context into a String. |
javax.swing.Icon |
getIcon() Get the icon for this macro. |
java.lang.String |
getLongLabel() Returns a long label that can be displayed to the user. |
java.lang.String |
getMacro() Get the macro string recognized by this expander. |
java.lang.String |
getSampleExpansion(Context context) Get a sample expansion of this macro. |
java.lang.String |
getShortLabel() Returns a short label that can be displayed to the user. |
java.lang.String |
getToolTipText() Get the tool tip text for this macro. |
boolean |
isAvailableForType(ExternalToolType type) Deprecated. since 11.1.2.0.0 use isAvailableForType that takes id instead |
boolean |
isAvailableForType(java.lang.String typeId) Should this macro be made available for external tools of the specified type? |
boolean |
isDirectoryMacro() Does this macro expand to a directory? Some of the external tools UI provides a restricted list of macros where only directory values can be used. |
java.lang.String |
toMacroString() Gets the text of this macro exactly as it appears in an unexpanded string. |
java.lang.String |
toString() Get a string representation of this macro. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public MacroExpander()
Method Detail |
---|
public javax.swing.Icon getIcon()
getIcon
in interface Displayable
public java.lang.String getToolTipText()
getToolTipText
in interface Displayable
public java.lang.String toString()
getShortLabel()
.toString
in interface Displayable
toString
in class java.lang.Object
Object.toString()
, Displayable.getShortLabel()
public java.lang.String getMacro()
public java.lang.String getShortLabel()
Displayable
String
is considered translatable and should therefore be placed in an appropriate resource file. When possible, the returned label should be reasonably short enough to show in the navigator or explorer windows but long enough to clearly identify and distinguish the Displayable
.getShortLabel
in interface Displayable
Displayable
that can be shown to the user.public java.lang.String getLongLabel()
Displayable
String
is considered translatable and should therefore be placed in an appropriate resource file. The long label differs from the short label essentially on length. Usually the long label will only be shown on-demand and in places where horizontal space is more available. Examples are the status bar and tooltips.getLongLabel
in interface Displayable
Displayable
that can be shown to the user.public java.lang.String toMacroString()
This implementation returns "${" +
getMacro()
+ "}"
public boolean isDirectoryMacro()
This implementation returns false.
public java.lang.String getSampleExpansion(Context context)
The simplest implementation of this method just returns the same result as expand( Context )
.
Because these commmand lines are displayed while the external tools UI is on screen, and are not necessarily related to actually running an external tool, you should avoid displaying UI in this method.
In addition, because this is an example string, you may choose to ignore the specified context and just provide a string that resembles the expansion of this macro.
This implementation just calls expand( Context )
. You should override this if expand() displays UI or takes a long time. Note: the implementation for this method will only be called if the extension that registered the implementation is already loaded. Otherwise the LazyMacroExpander will return null rather than calling the true implementation.
context
- an IDE contextpublic abstract java.lang.String expand(Context context)
context
- an IDE contextpublic boolean isAvailableForType(ExternalToolType type)
This implementation returns true.
public boolean isAvailableForType(java.lang.String typeId)
This implementation returns true.
|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK 11g Release 2 (11.1.2.2.0) E17493-03 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |