# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: D:\hg\toolbars\openide.loaders\src\org\openide\awt
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: ToolbarPool.java
--- ToolbarPool.java Base (BASE)
+++ ToolbarPool.java Locally Modified (Based On LOCAL)
@@ -42,19 +42,37 @@
package org.openide.awt;
-import java.awt.*;
-import java.awt.event.*;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.FlowLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseEvent;
import java.io.IOException;
-import java.util.*;
import java.util.ArrayList;
-import javax.accessibility.*;
-import javax.swing.*;
+import java.util.Collections;
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.WeakHashMap;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.swing.ButtonGroup;
+import javax.swing.JComponent;
import javax.swing.JComponent.AccessibleJComponent;
-import javax.swing.border.Border;
+import javax.swing.JPanel;
+import javax.swing.JPopupMenu;
+import javax.swing.JRadioButtonMenuItem;
import org.openide.cookies.InstanceCookie;
-import org.openide.filesystems.*;
-import org.openide.loaders.*;
-import org.openide.util.*;
+import org.openide.filesystems.FileObject;
+import org.openide.filesystems.FileUtil;
+import org.openide.filesystems.Repository;
+import org.openide.loaders.DataFolder;
+import org.openide.loaders.FolderInstance;
+import org.openide.util.Task;
+import org.openide.util.TaskListener;
/**
* This class keeps track of the current toolbars and their names.
@@ -107,9 +125,10 @@
try {
fo = FileUtil.createFolder(root, "Toolbars"); // NOI18N
} catch (IOException ex) {
- Exceptions.printStackTrace(ex);
+ Logger.getLogger(ToolbarPool.class.getName()).log(Level.CONFIG, "Cannot create Toolbars folder.", ex);
}
- if (fo == null) throw new IllegalStateException("No Toolbars/"); // NOI18N
+ if (fo == null)
+ throw new IllegalStateException("No Toolbars/"); // NOI18N
DataFolder folder = DataFolder.findFolder(fo);
defaultPool = new ToolbarPool(folder);
// we mustn't do this in constructor to prevent from
@@ -142,25 +161,7 @@
getAccessibleContext().setAccessibleName(instance.instanceName());
getAccessibleContext().setAccessibleDescription(instance.instanceName());
-
- if ("Windows".equals(UIManager.getLookAndFeel().getID())) {
- if( isXPTheme() ) {
- //Set up custom borders for XP
- setBorder(BorderFactory.createCompoundBorder(
- upperBorder,
- BorderFactory.createCompoundBorder(
- BorderFactory.createMatteBorder(0, 0, 1, 0,
- fetchColor("controlShadow", Color.DARK_GRAY)),
- BorderFactory.createMatteBorder(0, 0, 1, 0, mid))
- )); //NOI18N
- } else {
- setBorder( BorderFactory.createEtchedBorder() );
}
- } else if ("GTK".equals(UIManager.getLookAndFeel().getID())) {
- //No border
- setBorder (BorderFactory.createEmptyBorder(0, 0, 0, 0));
- }
- }
/**
* Gets preferred size of icons used by toolbar buttons. Default icon size
@@ -185,61 +186,6 @@
this.preferredIconSize = preferredIconSize;
}
- public Border getBorder() {
- //Issue 36867, hide border if there are no toolbars. Not the most
- //performant way to do it; if it has a measurable impact, can be
- //improved
- if (center != null && center instanceof Container &&
- ((Container)center).getComponentCount() > 0) {
-
- boolean show = false;
- for (int i=0; i < ((Container)center).getComponentCount(); i++) {
- Component c = ((Container)center).getComponent(i);
- if (c.isVisible()) {
- show = true;
- break;
- }
- }
- if (show) {
- return super.getBorder();
- }
- }
- return lowerBorder;
- }
-
- private static Color fetchColor (String key, Color fallback) {
- //Fix ExceptionInInitializerError from MainWindow on GTK L&F - use
- //fallback colors
- Color result = (Color) UIManager.get(key);
- if (result == null) {
- result = fallback;
- }
- return result;
- }
-
- private static Color mid;
- static {
- Color lo = fetchColor("controlShadow", Color.DARK_GRAY); //NOI18N
- Color hi = fetchColor("control", Color.GRAY); //NOI18N
-
- int r = (lo.getRed() + hi.getRed()) / 2;
- int g = (lo.getGreen() + hi.getGreen()) / 2;
- int b = (lo.getBlue() + hi.getBlue()) / 2;
- mid = new Color(r, g, b);
- }
-
- private static final Border lowerBorder = BorderFactory.createCompoundBorder(
- BorderFactory.createMatteBorder(0, 0, 1, 0,
- fetchColor("controlShadow", Color.DARK_GRAY)),
- BorderFactory.createMatteBorder(0, 0, 1, 0, mid)); //NOI18N
-
- private static final Border upperBorder = BorderFactory.createCompoundBorder(
- BorderFactory.createMatteBorder(1, 0, 0, 0,
- fetchColor("controlShadow", Color.DARK_GRAY)),
- BorderFactory.createMatteBorder(1, 0, 0, 0,
- fetchColor("controlLtHighlight", Color.WHITE))); //NOI18N
-
-
/** Allows to wait till the content of the pool is initialized. */
public final void waitFinished () {
instance.instanceFinished ();
@@ -262,15 +208,15 @@
/** Updates the default configuration. */
private synchronized void updateDefault () {
- Toolbar[] toolbars = getToolbars ();
+ Toolbar[] bars = getToolbars ();
name = ""; // NOI18N
- if (toolbars.length == 1) {
- revalidate(toolbars[0]);
+ if (bars.length == 1) {
+ revalidate(bars[0]);
} else {
JPanel tp = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
- for (int i = 0; i < toolbars.length; i++) {
- tp.add(toolbars[i]);
+ for (int i = 0; i < bars.length; i++) {
+ tp.add(bars[i]);
}
revalidate(tp);
}
@@ -285,7 +231,9 @@
revalidate (comp);
}
- /** Sets DnDListener to all Toolbars. */
+ /** Sets DnDListener to all Toolbars.
+ * @deprecated
+ */
public void setToolbarsListener (Toolbar.DnDListener l) {
for (Toolbar t: toolbars.values()) {
t.setDnDListener (l);
@@ -302,11 +250,6 @@
}
add (center = c, BorderLayout.CENTER);
center.addMouseListener (listener);
-
-// java.awt.Window w = javax.swing.SwingUtilities.windowForComponent (this);
-// if (w != null) {
-// w.validate();
-// }
}
}
@@ -366,7 +309,7 @@
activate (config);
}
- firePropertyChange("configuration", old, name);
+ firePropertyChange("configuration", old, name); //NOI18N
}
/**
@@ -402,9 +345,11 @@
/** Read accessible context
* @return - accessible context
*/
+ @Override
public AccessibleContext getAccessibleContext () {
if(toolbarAccessibleContext == null) {
toolbarAccessibleContext = new AccessibleJComponent() {
+ @Override
public AccessibleRole getAccessibleRole() {
return AccessibleRole.TOOL_BAR;
}
@@ -413,28 +358,7 @@
return toolbarAccessibleContext;
}
- /** Recognizes if XP theme is set.
- * (copy & paste from org.openide.awt.Toolbar to avoid API changes)
- * @return true if XP theme is set, false otherwise
- */
- private static Boolean isXP = null;
- private static boolean isXPTheme () {
- if (isXP == null) {
- Boolean xp = (Boolean)Toolkit.getDefaultToolkit().
- getDesktopProperty("win.xpstyle.themeActive"); //NOI18N
- isXP = Boolean.TRUE.equals(xp)? Boolean.TRUE : Boolean.FALSE;
- }
- return isXP.booleanValue();
- }
-
/**
- * @return True if the Toolbar Customizer is visible and toolbar buttons can be dragged.
- */
- boolean isInEditMode() {
- return null != getClientProperty( "editMode" );
- }
-
- /**
* This class is used for delayed setting of configuration after instance
* creation is finished. It may happen during IDE start that
* ToolbarPool.setConfiguration is called before instance is created.
@@ -473,6 +397,7 @@
* Full name of the data folder's primary file separated by dots.
* @return the name
*/
+ @Override
public String instanceName () {
return instanceClass().getName();
}
@@ -481,6 +406,7 @@
* Returns the root class of all objects.
* @return Object.class
*/
+ @Override
public Class instanceClass () {
return ToolbarPool.class;
}
@@ -490,8 +416,10 @@
* @param cookie the instance cookie to test
* @return true if the cookie can provide Configuration
*/
+ @Override
protected InstanceCookie acceptCookie (InstanceCookie cookie)
throws java.io.IOException, ClassNotFoundException {
+
Class cls = cookie.instanceClass();
if (ToolbarPool.Configuration.class.isAssignableFrom (cls)) {
return cookie;
@@ -508,10 +436,11 @@
* @param df a DataFolder
to create the cookie for
* @return a Toolbar.Folder
for the specified folder
*/
+ @Override
protected InstanceCookie acceptFolder (DataFolder df) {
InstanceCookie ic = foldersCache.get (df);
if (ic == null) {
- ic = (FolderInstance)new Toolbar (df, true).waitFinished ();
+ ic = (FolderInstance) new Toolbar(df).waitFinished ();
foldersCache.put (df, ic);
}
return ic;
@@ -533,10 +462,10 @@
for (int i = 0; i < length; i++) {
try {
- java.lang.Object obj = cookies[i].instanceCreate();
+ Object obj = cookies[i].instanceCreate();
- if (obj instanceof org.openide.awt.Toolbar) {
- org.openide.awt.Toolbar toolbar = (org.openide.awt.Toolbar) obj;
+ if (obj instanceof Toolbar) {
+ Toolbar toolbar = (Toolbar) obj;
// should be done by ToolbarPanel in add method
toolbar.removeMouseListener(listener);
@@ -545,8 +474,8 @@
toolbarNames.add(toolbar.getName());
continue;
}
- if (obj instanceof org.openide.awt.ToolbarPool.Configuration) {
- org.openide.awt.ToolbarPool.Configuration config = (org.openide.awt.ToolbarPool.Configuration) obj;
+ if (obj instanceof ToolbarPool.Configuration) {
+ ToolbarPool.Configuration config = (ToolbarPool.Configuration) obj;
java.lang.String name = config.getName();
if (name == null) {
@@ -555,25 +484,22 @@
conf.put(name, config);
continue;
}
- if (obj instanceof java.awt.Component) {
- java.awt.Component comp = (java.awt.Component) obj;
- java.lang.String name = comp.getName();
+ if (obj instanceof Component) {
+ Component comp = (Component) obj;
+ String name = comp.getName();
if (name == null) {
name = cookies[i].instanceName();
}
- conf.put(name,
- new org.openide.awt.ToolbarPool.ComponentConfiguration(comp));
+ conf.put(name, new ToolbarPool.ComponentConfiguration(comp));
continue;
}
+ } catch (IOException ex) {
+ Logger.getLogger(ToolbarPool.class.getName()).log(Level.INFO, "Error while creating toolbars.", ex);
+ } catch (ClassNotFoundException ex) {
+ Logger.getLogger(ToolbarPool.class.getName()).log(Level.INFO, "Error while creating toolbars.", ex);
}
- catch (java.io.IOException ex) {
- Exceptions.printStackTrace(ex);
}
- catch (java.lang.ClassNotFoundException ex) {
- Exceptions.printStackTrace(ex);
- }
- }
update (toolbars, conf, toolbarNames);
return ToolbarPool.this;
@@ -581,6 +507,7 @@
/** Recreate the instance in AWT thread.
*/
+ @Override
protected Task postCreationTask (Runnable run) {
return new AWTTask (run);
}
@@ -635,9 +562,11 @@
* component */
private static final class ComponentConfiguration extends JPopupMenu
implements Configuration, ActionListener {
+
private Component comp;
- ComponentConfiguration() {}
+ ComponentConfiguration() {
+ }
static final long serialVersionUID =-409474484612485719L;
/** @param comp component that represents this configuration */
@@ -652,6 +581,7 @@
/** @return name of the component
*/
+ @Override
public String getName () {
return comp.getName ();
}
@@ -662,11 +592,9 @@
removeAll ();
// generate list of available toolbar panels
- Iterator it = Arrays.asList (ToolbarPool.getDefault ().getConfigurations ()).iterator ();
ButtonGroup bg = new ButtonGroup ();
String current = ToolbarPool.getDefault ().getConfiguration ();
- while (it.hasNext()) {
- final String name = (String)it.next ();
+ for( String name : ToolbarPool.getDefault().getConfigurations() ) {
JRadioButtonMenuItem mi = new JRadioButtonMenuItem (name, (name.compareTo (current) == 0));
mi.addActionListener (this);
bg.add (mi);
@@ -681,8 +609,6 @@
public void actionPerformed (ActionEvent evt) {
ToolbarPool.getDefault().setConfiguration (evt.getActionCommand ());
}
-
}
-
} // end of ToolbarPool