public class EditorKit
extends java.lang.Object
This EditorKit provides also a ViewFactory, which delegates most of its behaviour to an underlying factory (except for the View associated with the RootElement of the Drawing), and whose type depends on the current content-type, as set by setContentType. This allows the "root-view" to maintain a reference to the container (which this EditorKit can easily provide), while still allowing underlying ViewFactory's to be really independant of the exact structure of the Drawing (especially the existence of a RootElement). Besides, the EditorKit can plug a new ViewFactory on-the-fly when the content-type changed, w/o other objects having to be informed.
[todo]
Modifier and Type | Class and Description |
---|---|
static class |
EditorKit.ActivateSnapAction
Toggles grid-snap activation
|
static class |
EditorKit.CopyAction
Copy target's content to clipboard
|
static class |
EditorKit.CutAction
Cut target's content to clipboard
|
static class |
EditorKit.DeleteAction
Delete the current selection
|
static class |
EditorKit.EditBoundingBoxAction
edit Drawing's bounding box
|
static class |
EditorKit.EditDispositionAction
Bring one or more selected objets to back, to front, forward or backward.
|
static class |
EditorKit.EditGeometryAction
Open a dialog that allows the user to edit the geometry of the currently selected element
from a dialog box.
|
static class |
EditorKit.GroupAction
Group all selected objects into a new PicGroup.
|
static class |
EditorKit.JoinCurvesAction
Join all selected objects of type PicMultiCurveConvertable into a new PicMultiCurve.
|
static class |
EditorKit.PasteAction
Paste the content of the given ClipBoard into the target canvas
|
static class |
EditorKit.SelectAllAction
selects all objects in the current active internal frame
|
static class |
EditorKit.SelectMouseToolAction
Sets the current mouse-tool for the editor-kit.
|
static class |
EditorKit.ShowGridAction
Toggles grid's visible state
|
static class |
EditorKit.ToggleEditPointsModeAction
Toggles the EditorKit's edit-points-mode b/w LOCAL_MODE and GLOBAL_MODE.
|
static class |
EditorKit.UngroupAction
Ungroup the current selection if this makes sense.
|
static class |
EditorKit.ZoomInAction
zoom in
|
static class |
EditorKit.ZoomOutAction
zoom out
|
Modifier and Type | Field and Description |
---|---|
protected PECanvas |
board
the PECanvas this EditorKit is installed in.
|
static java.lang.String |
EDIT_MODE_CHANGE
property name for edit mode change : "edit-mode"
|
static java.lang.String |
EDIT_POINT
point edition tool
|
protected javax.swing.event.EventListenerList |
listenerList
list of HelpMessageListener's and PropertyChangeListener's for this EditorKit
|
static java.lang.String |
MOVE
move
|
static java.lang.String |
ROTATE
rotate
|
static java.lang.String |
SCALE
scale
|
static java.lang.String |
SELECT
selection
|
static java.lang.String |
SHEAR
shear
|
static java.lang.String |
ZOOM
zoom mode
|
Constructor and Description |
---|
EditorKit()
Construct a new EditorKit with SELECT being the default initial edit-mode, and a default viewfactory.
|
EditorKit(ContentType contentType,
EditorKit oldKit)
Construct a new EditorKit with SELECT being the default initial edit-mode.
|
Modifier and Type | Method and Description |
---|---|
void |
addHelpMessageListener(HelpMessageListener l)
adds a HelpMessageListener to the listener list
|
void |
addPropertyChangeListener(java.beans.PropertyChangeListener l)
adds a PropertyChangeListener to the listener list
|
static javax.swing.ActionMap |
createActionMap(ActionDispatcher dispatcher,
ActionLocalizer localizer) |
ContentType |
createDefaultContentType()
Creates a default content-type suited for this editor
|
javax.swing.InputMap |
createInputMap() |
void |
deinstall(PECanvas board)
Called when the kit is being removed from a PECanvas
This is used to unregister any previously registered mouse-tool.
|
protected void |
firePropertyChange(java.lang.String propertyName,
java.lang.Object oldValue,
java.lang.Object newValue)
Notify all listeners that have registered interest for notification on this event type.
|
static java.lang.String[][] |
getAvailableToolNames()
Returns all mousetool-names registered by default with this EditorKit.
|
PECanvas |
getCanvas()
Return the PECanvas into which this kit is installed, or null if the kit has not been installed yet.
|
static java.awt.datatransfer.Clipboard |
getClipboard()
Return a static reference to the local ClipBoard shared across all instance of this EditorKit
|
java.lang.String |
getCurrentMouseTool() |
FormatterFactory |
getFormatterFactory() |
HighlighterFactory |
getHighlighterFactory()
Return the factory delegate for producing View's Highlighters
|
PicAttributeSet |
getInputAttributes()
get the input attributes for the PECanvas attached to this EditorKit
|
PopupMenuFactory |
getPopupMenuFactory() |
MouseTool[] |
getRegisteredMouseTools() |
java.lang.String[] |
getRegisteredMouseToolsByName() |
SelectionHandler |
getSelectionHandler() |
ViewFactory |
getViewFactory() |
void |
install(PECanvas board)
Called when the kit is being installed into a PECanvas.
|
void |
paint(java.awt.Graphics2D g,
java.awt.geom.Rectangle2D allocation,
double scale)
Allow this EditorKit to paint shapes specific to the current tool, either directly,
or through the paint method of its tools.
|
protected void |
postHelpMessage(java.lang.String message)
Notify all listeners that have registered interest for notification on this event type.
|
void |
registerMouseTool(java.lang.String name,
MouseTool mt)
Registers the given mouse-tool by associating it with the given name in the hashtable of
available mouse-tools.
|
void |
removeHelpMessageListener(HelpMessageListener l)
removes an HelpMessageListener from the EditorKit
|
void |
removePropertyChangeListener(java.beans.PropertyChangeListener l)
removes an PropertyChangeListener from the EditorKit
|
void |
setCurrentMouseTool(java.lang.String editMode)
set the current mouse tool for this editor kit
|
void |
setFactoriesFromContentType(ContentType ct)
plugs new FormatterFactory and ViewFactory into this EditorKit, using the given ContentType to create them on-the-fly.
|
void |
setHighlighterFactory(HighlighterFactory hf)
Sets the factory delegate for producing View's Highlighters
|
void |
setInputAttributes(PicAttributeSet set)
set the input attributes for the PECanvas attached to this EditorKit
|
void |
setPopupMenuFactory(PopupMenuFactory popupMenuFactory)
Set the popup-menu factory that produces a JPopupMenu when the EditorKit asks for it.
|
void |
unRegisterMouseTool(java.lang.String name)
Unregisters the mouse-tool having the given name from the table of available mouse-tools.
|
public static final java.lang.String ZOOM
public static final java.lang.String SELECT
public static final java.lang.String EDIT_POINT
public static final java.lang.String MOVE
public static final java.lang.String SCALE
public static final java.lang.String ROTATE
public static final java.lang.String SHEAR
public static final java.lang.String EDIT_MODE_CHANGE
protected PECanvas board
protected javax.swing.event.EventListenerList listenerList
public EditorKit()
public EditorKit(ContentType contentType, EditorKit oldKit)
contentType
- if non-null, this set the view- and formatter- factories to use for rendering the associated content ;
otherwise, default factories are created using createDefaultContentType()
.oldKit
- if an old instance already existed, and one wishes to reuse its properties, e.g.
listener-list, popupmenu-factory, input-attributes,... except obviously for the ViewFactory
and the FormatterFactory given as arguments. May be safely be set to null.public void install(PECanvas board)
board
- the PECanvaspublic void deinstall(PECanvas board)
board
- the PECanvaspublic PECanvas getCanvas()
public void setFactoriesFromContentType(ContentType ct)
ct
- if null, a default content-type is used, as returned by createDefaultContentType
public ContentType createDefaultContentType()
public PicAttributeSet getInputAttributes()
public void setInputAttributes(PicAttributeSet set)
public FormatterFactory getFormatterFactory()
public static java.lang.String[][] getAvailableToolNames()
public void registerMouseTool(java.lang.String name, MouseTool mt)
setCurrentMouseTool()
.public void unRegisterMouseTool(java.lang.String name)
public java.lang.String[] getRegisteredMouseToolsByName()
public MouseTool[] getRegisteredMouseTools()
public void setCurrentMouseTool(java.lang.String editMode)
When setting a new edit-mode, the editor kit fire a PropertyChange Event with key
"EDIT_MODE_CHANGE" and the given edit-mode as the new value.
This may be used by the UI to get informed that a change occured (since some
mouse-tools in this kit may change the edit-mode from the inside).
editMode
- a previously registered mouseTool's namepublic java.lang.String getCurrentMouseTool()
public void addPropertyChangeListener(java.beans.PropertyChangeListener l)
public void removePropertyChangeListener(java.beans.PropertyChangeListener l)
protected void firePropertyChange(java.lang.String propertyName, java.lang.Object oldValue, java.lang.Object newValue)
public void addHelpMessageListener(HelpMessageListener l)
public void removeHelpMessageListener(HelpMessageListener l)
protected void postHelpMessage(java.lang.String message)
public void setPopupMenuFactory(PopupMenuFactory popupMenuFactory)
In this implementation, a popup-menu gets raised if :
public PopupMenuFactory getPopupMenuFactory()
public void paint(java.awt.Graphics2D g, java.awt.geom.Rectangle2D allocation, double scale)
scale
- the current scale factor b/w model-coordinates and view-coordinates ;
this depends on the AffineTransform being currently active in PECanvas's paintComponent,
and may be used, e.g. to scale down lines thickness so that they're displayed with a
constant thickness whatever the scale factor attached to Graphics2D (this is faster than
retrieving the AffineTransform attached to the graphic context given as parameter, and
computing the scale factor by using getScaleX).public ViewFactory getViewFactory()
public HighlighterFactory getHighlighterFactory()
public void setHighlighterFactory(HighlighterFactory hf)
public SelectionHandler getSelectionHandler()
public static javax.swing.ActionMap createActionMap(ActionDispatcher dispatcher, ActionLocalizer localizer)
public javax.swing.InputMap createInputMap()
public static java.awt.datatransfer.Clipboard getClipboard()
Submit a bug : syd@jpicedt.org