|
|
|
|
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(); } } }Question (arch-time): What are the time estimates of the work? Answer: November 15 2003. Question (arch-quality): How will the quality of your code be tested and how are future regressions going to be prevented? WARNING: Question with id="arch-quality" has not been answered!
OpenIDE-Module-IDE-Dependencies: IDE/1 > X.XX (it will be defined yet)
as window system is part of openide.
And dependeny on implementation:
OpenIDE-Module-Module-Dependencies: org.netbeans.core.windows > X.XX
. But since the core-windows.jar does not provide any public API
this should be used only in ui-declaration module (like core-ui.jar).
java.io.File
directly?
Answer:
No.
Question (resources-layer):
Does your module provide own layer? Does it create any files or
folders in it? What it is trying to communicate by that and with which
components?
Answer:
Yes. Default window system layout is in module layer. Other modules can define
their own winsys elements (mode, group, component) in their module layer.
Question (resources-read):
Does your module read any resources from layers? For what purpose?
Answer:
Module reads its own configuration from its layer and eventualy from other module layers
if provided. Data have following folder structure.
It contains ModuleDataStructure
- Module folder structure under Windows2 directory
and LocalDataStructure
- Local folder structure under Windows2Local directory.
Question (resources-mask):
Does your module mask/hide/override any resources provided by other modules in
their layers?
Answer:
No.
org.openide.util.Lookup
or any similar technology to find any components to communicate with? Which ones?
Answer:
Window Manager implementation (from core) registers itself and lookup is used
from API part to get the instance and return as
WindowManager.getDefault ()
and also WindowManager.componentRegistry().
gets the registered instance of TopComponent.Registry
.
Also there are provided implementations of DialogDisplayer.getDefault()
and NodeOperation.getDefault() services.
There is also provided service which implements NbTopManager.WindowSystem
- org.netbeans.core.NbTopManager$WindowSystem interface,
which is used in core module. It is used for starting window system (loading and show) in startup sequence and finishiing of window system (hiding and saving)
during exit sequence. The reason of this is that module API is not sufficient fot window system module, since it needs to provide its loading after all
module layers are loaded etc.
Question (lookup-register):
Do you register anything into lookup for other code to find?
Answer:
WindowManager and TopComponent.Registry are registered. Used to find sinleton
instance by singleton accessor.
Question (lookup-remove):
Do you remove entries of other modules from lookup?
Answer:
Yes. It removes implementation of NodeOperation.getDefault()
service provided by openide-explorer module.
System.getProperty
) property?
Answer:
There are some, will put later here.
Yes.
netbeans.winsys.imageSource
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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.windows
-
Valid values are "mdi" and "sdi". It selects GUI mode in which window system is started.
The "mdi" and "sdi" names are now obsoleted (together with the option). The "mdi" corresponds to
"compact" mode and "sdi" corresponds to "selected" mode.
It can be set on command line or in ide.cfg. Usage example: To start IDE in Selected mode use
-J-Dnetbeans.windows=sdi
tab_focus_fill_dark
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_border")
tab_bottom_border
-
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
-
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("tab_sel_border")
workplace_fill
-
One of colors used in own tabs UI implementation.
Usage example: To get color, call javax.swing.UIManager.get("workplace_fill")
tab_highlight_header
-
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
-
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
-
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
-
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.
Question (exec-component):
Is execution of your code influenced by any (string) property
of any of your components?
Answer:
Yes. Component can control its persistence and way how they are displayed in container.
PersistenceType
-
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
-
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.
Question (exec-ant-tasks):
Do you define or register any ant tasks that other can use?
WARNING: Question with id="exec-ant-tasks" has not been answered!
Question (exec-classloader):
Does your code create its own class loader(s)?
Answer:
No.
Question (exec-reflection):
Does your code use Java Reflection to execute other code?
Answer:
No.
Question (exec-privateaccess):
Are you aware of any other parts of the system calling some of
your methods by reflection?
Answer:
No. Now is the window persistence independent from projects.
Question (exec-process):
Do you execute an external process from your module? How do you ensure
that the result is the same on different platforms? Do you parse output?
Do you depend on result code?
Answer:
No.
Question (exec-introspection):
Does your module use any kind of runtime type information (instanceof
,
work with java.lang.Class
, etc.)?
Answer:
No.
Question (exec-threading):
What threading models, if any, does your module adhere to?
WARNING: Question with id="exec-threading" has not been answered!
Question (security-policy):
Does your functionality require modifications to the standard policy file?
WARNING: Question with id="security-policy" has not been answered!
Question (security-grant):
Does your code grant additional rights to some other code?
WARNING: Question with id="security-grant" has not been answered!java.awt.datatransfer.Transferable
?
Answer:
Module uses the same standard protocol as actions module. In case of Copy-n-Paste
instances of Workspace, Mode and TopComponent are passed to clipboard.
There are defined three kinds of DataFlavor
S for pure internal usage for DnD of TopComponent
S.
They are constructed using MIME Types constructed following way:
TopComponnet
with slow internal responsiveness, e.g. with slow
painting routines, validating, bad UI management etc.TopComponent
implementation, just could be provided performance
test which could indicate some specific TopComponent
instance doesn't fullfil certain performance criteria.
Built on May 4 2005. | Portions Copyright 1997-2005 Sun Microsystems, Inc. All rights reserved.