当前页面:
在线文档首页 >
NetBeans API Javadoc (Current Development Version)
Overview (Window System API) - NetBeans API Javadoc (Current Development Version)
Window System API
Official
Redesign documents.
See:
Description
Redesign documents.
Use Cases
General
UsecasesUse cases
can be read on the external page.
Here is a small howto for simple things that may
be found useful:
How to create a '.settings' file for a TopComponent?
Either write it by hand (not that hard if you copy other file and
tweak it to match your TC), or start the IDE, instantiate the TC
somehow (You have a "Window->Show My TC", right? ),
copy the file that gets created in $userdir/config/Windows2Local/Component
and cleanup the serialdata section - replace it with proper "<instance class='..." /> tag.
How to make a TopComponentGroup?
Q: I'm trying to make a TopComponentGroup. I've just read http://ui.netbeans.org/docs/ui/ws/ws_spec.html#3.9
I want to make a group that uses the first invocation strategy.
That is, I want the group to open/close when I activate a certain subclass of TopComponent.
Say, for example, I have a FooTopComponent, and when it's active,
I want to open a FooPropertySheetComponent, docked in a mode on the right-hand side.
I know I have to:
- declare the group in the layer file (Windows2/Groups)
- have code for opening the group
- have code for closing the group
I think I do #2 in FooTopComponent.componentActivated() and #3 in
FooTopComponent.componentDeactivated(). Is that right?
A:Yes it is correct way. You can check
simple test module.
First you must get TopComponentGroup instance using find method then call TopComponentGroup.open()/close().
Here is the code in your componentDeactivated method:
protected void componentDeactivated ()
{
// close window group containing propsheet, but only if we're
// selecting a different kind of TC in the same mode
boolean closeGroup = true;
Mode curMode = WindowManager.getDefault().findMode(this);
TopComponent selected = curMode.getSelectedTopComponent();
if (selected != null && selected instanceof FooTopComponent)
closeGroup = false;
if (closeGroup)
{
TopComponentGroup group = WindowManager.getDefault().findTopComponentGroup(TC_GROUP);
if (group != null)
{
group.close();
}
}
}
Exported Interfaces
This table lists all of the module exported APIs
with
defined stability classifications. It is generated
based on answers to questions about the architecture
of the module.
Read them all...
Group of java interfaces
Group of layer interfaces
Group of property interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
PersistenceType | Exported | Deprecated |
Valid values are "Never", "OnlyOpened". Default is "" (empty string) and means always persistent.
"Never" means that TopComponent is not persistent at all. It lives only during IDE run.
"OnlyOpened" means that TopComponent is serialized only when it is opened. If it is closed
instance is lost.
Default behaviour is that TopComponent is serialized always regardless it is opened or
closed.
It is client property of TopComponent. Usage example: To disable persistence of TopComponent
use putClientProperty("PersistenceType","Never"); in initialization code of TopComponent
eg. in constructor.
Usage of this client property is deprecated. Use API method TopComponent.getPersistenceType()
instead.
|
SlidingName | Exported | Private |
Valid value is any String value representing displayable title of TopComponent in
sliding mode. Title is shown on buttons on sides of main window for TopComponents that
are currently hidden in sliding state.
This property has no effect on regular display names of TopComponents which are shown in
captions of windows/tabs in the window system.
It is client property of TopComponent. Usage example: To provide different, preferably
shorter and non changing name for sliding title of your TopComponent subclass,
use putClientProperty("SlidingName","your sliding title"); in initialization code of TopComponent
eg. in constructor.
Note that in next releases usage of this client property will be removed and replaced
by API, see issue #55955 in Issuezilla on www.netbeans.org.
|
OpenIDE-Transmodal-Action | Exported | Friend |
An Action with the property OpenIDE-Transmodal-Action set to
Boolean.TRUE should function on all focused components. This includes the Main
Window, dialogs, popup menus, etc. Otherwise only the Main Window and TopComponent s
will receive the keystroke.
|
netbeans.winsys.imageSource | Exported | Private |
Valid values are path to image in NB like "org/netbeans/core/resources/splash.gir".
It puts the specified image into the the emptied documents area.
it is experimental now.
-J-Dnetbeans.winsys.imageSource=org/netbeans/core/resources/splash.gif
|
netbeans.winsys.dndfade.on | Exported | Private |
Valid values are "true" and "false". Default is "false".
If it is "true" it paint faded feedback during DnD of windows. Keep in mind it makes
some performance impact on DnD.
It is experimental now.
-J-Dnetbeans.winsys.fade.on=true
|
netbeans.winsys.disable_dnd | Exported | Private |
Valid values are "true" and "false". Default is "false".
If it is "true" it disables DnD of windows.
-J-Dnetbeans.winsys.disable_dnd=true
|
netbeans.winsys.allow.dock.anywhere | Exported | Private |
Valid values are "true" and "false". Default is "false".
It allows user to move (e.g. using DnD) TopComponent S between editor(document) and view
which is restricte otherwise.
It is experimental now.
-J-Dnetbeans.winsys.allow.dock.anywhere=true
|
netbeans.winsys.hideEmptyDocArea | Exported | Private |
Valid values are "true" and "false". Default is "false".
If it is "true" it doesn't show empty documents area.
-J-Dnetbeans.winsys.hideEmptyDocArea=true
|
netbeans.winsys.statusLine.in.menuBar | Exported | Private |
Valid values are "true" and "false". Default is "false".
If it is "true" it shows status line at the and of menu bar instead of the
bottom of documents are (or main window).
-J-Dnetbeans.winsys.statusLine.in.menuBar=true
|
netbeans.winsys.no_toolbars | Exported | Private |
Valid values are "true" and "false". Default is "false".
If it is "true" it hides all toolbars.
-J-Dnetbeans.winsys.no_toolbars=true
|
netbeans.winsys.menu_bar.path | Exported | Private |
If this property is set its value must point to a file on the system file system
that provides instance of type org.openide.awt.MenuBar .
This alternative menu bar will be used instead of the default one.
-J-Dnetbeans.winsys.menu_bar.path=foo/bar.instance
|
netbeans.winsys.status_line.path | Exported | Private |
If this property is set its value must point to a file on the system file system
that provides instance of type javax.swing.JComponent .
This alternative status line will be used instead of the default one.
-J-Dnetbeans.winsys.status_line.path=foo/bar.instance
|
netbeans.winsys.no_help_in_dialogs | Exported | Private |
Valid values are "true" and "false". Default is "false".
If set to "true" the modal dialogs will be shown without the help button.
-J-Dnetbeans.winsys.no_help_in_dialogs=true
|
netbeans.windows | Exported | Private |
This property was deleted and has no effect now, as sdi support was dropped
and replaced by individual seperate windows. Please don't use, it's useless.
|
org.openide.windows.DummyWindowManager.VISIBLE | Exported | Private |
If set to false , windows opened (e.g. TopComponent.open ) using the
dummy fallback window manager will not really be set to be visible. Useful for unit tests which
must incidentally use the Window System API but for which actual display of windows is undesirable.
|
|
Group of javax.swing.UIManager interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
tab_focus_fill_dark | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_focus_fill_dark")
|
tab_focus_fill_bright | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_focus_fill_bright")
|
tab_unsel_fill_dark | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_unsel_fill_dark")
|
tab_unsel_fill_bright | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_unsel_fill_bright")
|
tab_sel_fill | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_sel_fill")
|
tab_sel_fill_bright | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_sel_fill_bright")
|
tab_sel_fill_dark | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_sel_fill_dark")
|
tab_border | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_border")
|
tab_bottom_border | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_bottom_border")
|
tab_sel_border | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_sel_border")
|
workplace_fill | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("workplace_fill")
|
tab_highlight_header | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_highlight_header")
|
tab_highlight_header_fill | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_highlight_header_fill")
|
standard_border | Exported | Private |
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("standard_border")
|
org.netbeans.core.windows.view.ui.tabcontrol.BorderProvider | Exported | Private |
Custom border management for tabbed containers can be achieved by implementing
interface org.netbeans.core.windows.view.ui.tabcontrol.BorderProvider
and putting instance into Swing's UIManager table under key with the same name
as interface has.
Usage example: Provide BorderProviderImpl implementation and put it in table
javax.swing.UIManager.put("org.netbeans.core.windows.view.ui.tabcontrol.BorderProvider", borderProviderImpl)
during startup, before main window is shown.
|
|
Group of logger interfaces
Group of dtd interfaces
Implementation Details
What do other modules need to do to declare a dependency on this one, in addition to or instead of a plain module dependency?
You might use
OpenIDE-Module-Requires: org.openide.windows.WindowManager
but it is not generally done.
Read more about the implementation in the answers to
architecture questions.