Java Code Examples for javax.swing.AbstractButton#putClientProperty()

The following examples show how to use javax.swing.AbstractButton#putClientProperty() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AbstractToolbarFactory.java    From netbeans with Apache License 2.0 6 votes vote down vote up
private void configureToolbarButton (AbstractButton item, String containerCtx, String action, ActionProvider provider, Map ctx) {
        item.setFocusable(false);
        item.setName(action);
        item.putClientProperty (KEY_ACTION, action);
        item.setToolTipText(
            provider.getDisplayName(action, containerCtx));
//        item.setToolTipText(provider.getDescription(action, containerCtx));
        int state = ctx == null ? ActionProvider.STATE_VISIBLE :
            provider.getState (action, containerCtx, ctx);
        boolean enabled = (state & ActionProvider.STATE_ENABLED) != 0;
        item.setEnabled(enabled);
        boolean visible = (state & ActionProvider.STATE_VISIBLE) != 0;
        item.setVisible (visible);
        boolean toggled = (state & ActionProvider.STATE_SELECTED) != 0;
        item.setSelected(toggled);
//        item.setMnemonic(provider.getMnemonic(action, containerCtx));
//        item.setDisplayedMnemonicIndex(provider.getMnemonicIndex(action, containerCtx));
        item.setIcon(provider.getIcon(action, containerCtx, BeanInfo.ICON_COLOR_16x16));
    }
 
Example 2
Source File: Mnemonics.java    From netbeans with Apache License 2.0 6 votes vote down vote up
/**
 * Wrapper for AbstractButton.setMnemonic and JLabel.setDisplayedMnemonic
 * @param item AbstractButton/JLabel
 * @param mnem Mnemonic char to set, latin [a-z,A-Z], digit [0-9], or any VK_ code
 */
private static void setMnemonic(Object item, int mnem) {
    if (isAquaLF()) {
        // there shall be no mnemonics on macosx.
        //#55864
        return;
    }

    if ((mnem >= 'a') && (mnem <= 'z')) {
        mnem = mnem + ('A' - 'a');
    }

    if (item instanceof AbstractButton) {
        AbstractButton b = (AbstractButton) item;
        b.putClientProperty(PROP_MNEMONIC, mnem);
        b.setMnemonic(mnem);
    } else {
        ((JLabel) item).setDisplayedMnemonic(mnem);
    }
}
 
Example 3
Source File: QButtonUI.java    From pumpernickel with MIT License 6 votes vote down vote up
@Override
public void uninstallUI(JComponent c) {
	super.uninstallUI(c);
	AbstractButton button = (AbstractButton) c;
	ButtonInfo i = getButtonInfo(button, false);
	button.getModel().removeChangeListener(i.buttonStateListener);
	if (i != null) {
		button.removePropertyChangeListener(PROPERTY_BOOLEAN_BUTTON_STATE,
				i.booleanStateListener);
		button.removePropertyChangeListener(PROPERTY_HORIZONTAL_POSITION,
				i.refreshBorderListener);
		button.removePropertyChangeListener(PROPERTY_VERTICAL_POSITION,
				i.refreshBorderListener);
		button.removePropertyChangeListener(PROPERTY_STROKE_PAINTED,
				i.refreshBorderListener);
		button.removePropertyChangeListener(PROPERTY_IS_CIRCLE,
				i.refreshBorderListener);
	}
	button.removeKeyListener(focusArrowListener);
	button.putClientProperty(PROPERTY_BUTTON_INFO, null);
	buttons.remove(button);
}
 
Example 4
Source File: MockComponent.java    From pumpernickel with MIT License 6 votes vote down vote up
/**
 * Temporarily massage this component so it is visible, enabled, unselected,
 * unfocused, etc.
 */
private void storeState(JComponent c) {
	if (c instanceof AbstractButton) {
		AbstractButton b = (AbstractButton) c;
		b.putClientProperty(WAS_SELECTED, new Boolean(b.isSelected()));
		b.putClientProperty(WAS_FOCUS_PAINTED, new Boolean(b.isSelected()));
		b.setSelected(false);
		b.setFocusPainted(false);
	}
	if (c.isEnabled() == false) {
		c.putClientProperty(WAS_ENABLED, new Boolean(c.isEnabled()));
		c.setEnabled(true);
	}
	if (c.isVisible() == false) {
		c.putClientProperty(WAS_VISIBLE, new Boolean(c.isVisible()));
		c.setVisible(true);
	}
	for (int a = 0; a < c.getComponentCount(); a++) {
		if (c.getComponent(a) instanceof JComponent) {
			storeState((JComponent) c.getComponent(a));
		}
	}
}
 
Example 5
Source File: Tools.java    From Zettelkasten with GNU General Public License v3.0 5 votes vote down vote up
public static AbstractButton makeTexturedToolBarButton(AbstractButton button, String segmentPosition) {
    if (null == segmentPosition || segmentPosition.isEmpty() || segmentPosition.equals(SEGMENT_POSITION_ONLY)) {
        button.putClientProperty("JButton.buttonType", "textured");
    } else {
        button.putClientProperty("JButton.buttonType", "segmentedTextured");
        button.putClientProperty("JButton.segmentPosition", segmentPosition);
    }
    button.setText(null);
    button.setBorderPainted(true);
    button.setPreferredSize(Constants.seaGlassButtonDimension);
    return button;
}
 
Example 6
Source File: FlatFileChooserUI.java    From FlatLaf with Apache License 2.0 5 votes vote down vote up
private void patchUI( JFileChooser fc ) {
	// turn top-right buttons into toolbar buttons
	Component topPanel = fc.getComponent( 0 );
	if( (topPanel instanceof JPanel) &&
		(((JPanel)topPanel).getLayout() instanceof BorderLayout) )
	{
		Component topButtonPanel = ((JPanel)topPanel).getComponent( 0 );
		if( (topButtonPanel instanceof JPanel) &&
			(((JPanel)topButtonPanel).getLayout() instanceof BoxLayout) )
		{
			Insets margin = UIManager.getInsets( "Button.margin" );
			Component[] comps = ((JPanel)topButtonPanel).getComponents();
			for( int i = comps.length - 1; i >= 0; i-- ) {
				Component c = comps[i];
				if( c instanceof JButton || c instanceof JToggleButton ) {
					AbstractButton b = (AbstractButton)c;
					b.putClientProperty( FlatClientProperties.BUTTON_TYPE,
						FlatClientProperties.BUTTON_TYPE_TOOLBAR_BUTTON );
					b.setMargin( margin );
					b.setFocusable( false );
				} else if( c instanceof Box.Filler )
					((JPanel)topButtonPanel).remove( i );
			}
		}
	}

	// increase maximum row count of directory combo box popup list
	try {
		Component directoryComboBox =  ((JPanel)topPanel).getComponent( 2 );
		if( directoryComboBox instanceof JComboBox ) {
			int maximumRowCount = UIManager.getInt( "ComboBox.maximumRowCount" );
			if( maximumRowCount > 0 )
				((JComboBox<?>)directoryComboBox).setMaximumRowCount( maximumRowCount );
		}
	} catch( ArrayIndexOutOfBoundsException ex ) {
		// ignore
	}
}
 
Example 7
Source File: QButtonUI.java    From pumpernickel with MIT License 5 votes vote down vote up
protected ButtonInfo getButtonInfo(AbstractButton b, boolean createIfMissing) {
	ButtonInfo i = (ButtonInfo) b.getClientProperty(PROPERTY_BUTTON_INFO);
	if (i == null && createIfMissing) {
		i = new ButtonInfo(b);
		b.putClientProperty(PROPERTY_BUTTON_INFO, i);
	}
	return i;
}
 
Example 8
Source File: ToolButtonFactory.java    From snap-desktop with GNU General Public License v3.0 5 votes vote down vote up
private static void configure(AbstractButton button) {

        RolloverButtonEventListener l = new RolloverButtonEventListener();
        button.addMouseListener(l);
        button.addItemListener(l);

        if (button.getAction() != null) {
            if (button.getIcon() != null) {
                button.putClientProperty("hideActionText", Boolean.TRUE);
            }
            Object largeIcon = button.getAction().getValue("_largeIcon");
            if (largeIcon instanceof Icon) {
                button.setIcon((Icon) largeIcon);
            }
        }

        Icon icon = button.getIcon();
        int minWidth = BUTTON_MIN_SIZE;
        int minHeight = BUTTON_MIN_SIZE;
        if (icon != null) {
            button.setText(null);
            minWidth = Math.max(icon.getIconWidth(), BUTTON_MIN_SIZE);
            minHeight = Math.max(icon.getIconHeight(), BUTTON_MIN_SIZE);
            if (icon instanceof ImageIcon) {
                button.setRolloverIcon(createRolloverIcon((ImageIcon) icon));
            }
        } else {
            button.setText("[?]");
        }
        final int space = 3;
        Dimension prefSize = new Dimension(minWidth + space, minHeight + space);
        Dimension minSize = new Dimension(minWidth, minHeight);
        Dimension maxSize = new Dimension(minWidth + space, minHeight + space);
        button.setPreferredSize(prefSize);
        button.setMaximumSize(maxSize);
        button.setMinimumSize(minSize);

    }
 
Example 9
Source File: MockComponent.java    From pumpernickel with MIT License 5 votes vote down vote up
/** Restore this component back to its original goodness. */
private void restoreState(JComponent c) {
	if (c instanceof AbstractButton) {
		AbstractButton b = (AbstractButton) c;
		if (b.getClientProperty(WAS_SELECTED) != null) {
			b.setSelected(((Boolean) b.getClientProperty(WAS_SELECTED))
					.booleanValue());
			b.putClientProperty(WAS_SELECTED, null);
		}
		if (b.getClientProperty(WAS_FOCUS_PAINTED) != null) {
			b.setFocusPainted(((Boolean) b
					.getClientProperty(WAS_FOCUS_PAINTED)).booleanValue());
			b.putClientProperty(WAS_FOCUS_PAINTED, null);
		}
	}
	if (c.getClientProperty(WAS_ENABLED) != null) {
		c.setEnabled(((Boolean) c.getClientProperty(WAS_ENABLED))
				.booleanValue());
		c.putClientProperty(WAS_ENABLED, null);
	}
	if (c.getClientProperty(WAS_VISIBLE) != null) {
		c.setVisible(((Boolean) c.getClientProperty(WAS_VISIBLE))
				.booleanValue());
		c.putClientProperty(WAS_VISIBLE, null);
	}
	for (int a = 0; a < c.getComponentCount(); a++) {
		if (c.getComponent(a) instanceof JComponent) {
			restoreState((JComponent) c.getComponent(a));
		}
	}
}
 
Example 10
Source File: NavigationButtons.java    From pumpernickel with MIT License 5 votes vote down vote up
public static void formatNext(AbstractButton button) {
	button.setIcon(createIcon(true, .75f));
	button.setRolloverIcon(createIcon(true, .85f));
	button.setSelectedIcon(createIcon(true, 1f));
	button.setDisabledIcon(createIcon(true, .3f));
	button.setUI(new BevelButtonUI());
	button.setContentAreaFilled(true);
	button.putClientProperty("JButton.segmentPosition", "last");
	button.setBorderPainted(true);
}
 
Example 11
Source File: NavigationButtons.java    From pumpernickel with MIT License 5 votes vote down vote up
public static void formatPrev(AbstractButton button) {
	button.setIcon(createIcon(false, .75f));
	button.setRolloverIcon(createIcon(false, .85f));
	button.setSelectedIcon(createIcon(false, 1f));
	button.setDisabledIcon(createIcon(false, .3f));
	button.setUI(new BevelButtonUI());
	button.setContentAreaFilled(true);
	button.putClientProperty("JButton.segmentPosition", "first");
	button.setBorderPainted(true);
}
 
Example 12
Source File: Mnemonics.java    From netbeans with Apache License 2.0 5 votes vote down vote up
/**
 * Wrapper for AbstractButton/JLabel.setText
 * @param item AbstractButton/JLabel
 * @param text the text to set
 */
private static void setText(Object item, String text) {
    if (item instanceof AbstractButton) {
        AbstractButton b = (AbstractButton) item;
        b.putClientProperty(PROP_TEXT, text);
        b.setText(text);
    } else {
        ((JLabel) item).setText(text);
    }
}
 
Example 13
Source File: Mnemonics.java    From netbeans with Apache License 2.0 5 votes vote down vote up
/**
 * Wrapper for the
 * <code>AbstractButton.setMnemonicIndex</code> or
 * <code>JLabel.setDisplayedMnemonicIndex</code> method.
 * @param item AbstractButton/JLabel or subclasses
 * @param index Index of the Character to underline under JDK1.4
 * @param latinCode Latin Character Keycode to underline under JDK1.3
 */
private static void setMnemonicIndex(Object item, int index) {
    if (item instanceof AbstractButton) {
        AbstractButton b = (AbstractButton) item;
        b.putClientProperty(PROP_DISPLAYED_MNEMONIC_INDEX, index);
        b.removePropertyChangeListener(PROP_DISPLAYED_MNEMONIC_INDEX, MNEMONIC_INDEX_LISTENER);
        b.setDisplayedMnemonicIndex(index);
        b.addPropertyChangeListener(PROP_DISPLAYED_MNEMONIC_INDEX, MNEMONIC_INDEX_LISTENER);
    } else if (item instanceof JLabel) {
        ((JLabel) item).setDisplayedMnemonicIndex(index);
    }
}
 
Example 14
Source File: TransparentToolBar.java    From visualvm with GNU General Public License v2.0 4 votes vote down vote up
public void mouseExited(MouseEvent e) {
    AbstractButton b = (AbstractButton) e.getSource();
    b.putClientProperty(PROP_HOVERED, Boolean.FALSE);
    refresh(b);
}
 
Example 15
Source File: TransparentToolBar.java    From visualvm with GNU General Public License v2.0 4 votes vote down vote up
public void mouseEntered(MouseEvent e) {
    AbstractButton b = (AbstractButton) e.getSource();
    b.putClientProperty(PROP_HOVERED, Boolean.TRUE);
    refresh(b);
}
 
Example 16
Source File: TransparentToolBar.java    From visualvm with GNU General Public License v2.0 4 votes vote down vote up
public void mouseExited(MouseEvent e) {
    AbstractButton b = (AbstractButton) e.getSource();
    b.putClientProperty(PROP_HOVERED, Boolean.FALSE);
    refresh(b);
}
 
Example 17
Source File: TransparentToolBar.java    From visualvm with GNU General Public License v2.0 4 votes vote down vote up
public void mouseEntered(MouseEvent e) {
    AbstractButton b = (AbstractButton) e.getSource();
    b.putClientProperty(PROP_HOVERED, Boolean.TRUE);
    refresh(b);
}
 
Example 18
Source File: TransparentToolBar.java    From netbeans with Apache License 2.0 4 votes vote down vote up
public void mouseExited(MouseEvent e) {
    AbstractButton b = (AbstractButton) e.getSource();
    b.putClientProperty(PROP_HOVERED, Boolean.FALSE);
    refresh(b);
}
 
Example 19
Source File: TransparentToolBar.java    From netbeans with Apache License 2.0 4 votes vote down vote up
public void mouseEntered(MouseEvent e) {
    AbstractButton b = (AbstractButton) e.getSource();
    b.putClientProperty(PROP_HOVERED, Boolean.TRUE);
    refresh(b);
}
 
Example 20
Source File: Actions.java    From netbeans with Apache License 2.0 4 votes vote down vote up
/** Connects buttons to action. If the action supplies value for "iconBase"
 * key from getValue(String) with a path to icons, the methods set*Icon
 * will be called on the
 * button with loaded icons using the iconBase. E.g. if the value for "iconBase"
 * is "com/mycompany/myIcon.gif" then the following images are tried
 * <ul>
 *  <li>setIcon with "com/mycompany/myIcon.gif"</li>
 *  <li>setPressedIcon with "com/mycompany/myIcon_pressed.gif"</li>
 *  <li>setDisabledIcon with "com/mycompany/myIcon_disabled.gif"</li>
 *  <li>setRolloverIcon with "com/mycompany/myIcon_rollover.gif"</li>
 *  <li>setSelectedIcon with "com/mycompany/myIcon_selected.gif"</li>
 *  <li>setRolloverSelectedIcon with "com/mycompany/myIcon_rolloverSelected.gif"</li>
 *  <li>setDisabledSelectedIcon with "com/mycompany/myIcon_disabledSelected.gif"</li>
 * </ul>
 * SystemAction has special support for iconBase - please check
 * {@link SystemAction#iconResource} for more details.
 * You can supply an alternative implementation
 * for this method by implementing method
 * {@link ButtonActionConnector#connect(AbstractButton, Action)} and
 * registering an instance of {@link ButtonActionConnector} in the
 * default lookup.
 * @param button the button
 * @param action the action
 * @since 3.29
 * @since 7.32 for set*SelectedIcon
 */
public static void connect(AbstractButton button, Action action) {
    for (ButtonActionConnector bac : buttonActionConnectors()) {
        if (bac.connect(button, action)) {
            return;
        }
    }
    Bridge b;
    if (action instanceof BooleanStateAction) {
        b = new BooleanButtonBridge(button, (BooleanStateAction)action);
    } else if (action.getValue(Actions.ACTION_VALUE_TOGGLE) != null) {
        b = new BooleanButtonBridge(button, action);
    } else {
        b = new ButtonBridge(button, action);
    }
    b.prepare();
    button.putClientProperty(DynamicMenuContent.HIDE_WHEN_DISABLED, action.getValue(DynamicMenuContent.HIDE_WHEN_DISABLED));
}