Java源码示例:com.alee.laf.button.WebToggleButton

示例1
@NotNull
@Override
protected List<? extends JComponent> createPreviewElements ()
{
    final JToolBar toolBar = new JToolBar ( SwingConstants.HORIZONTAL );
    toolBar.putClientProperty ( StyleId.STYLE_PROPERTY, getStyleId () );

    toolBar.add ( new WebButton ( getExampleLanguageKey ( "button1" ) ) );
    toolBar.add ( new WebButton ( getExampleLanguageKey ( "button2" ) ) );
    toolBar.add ( new WebButton ( getExampleLanguageKey ( "button3" ) ) );

    toolBar.addSeparator ( new Dimension ( 10, 10 ) );

    final WebToggleButton toggle1 = new WebToggleButton ( DemoIcons.win16, SystemUtils.isWindows () );
    final WebToggleButton toggle2 = new WebToggleButton ( DemoIcons.mac16, SystemUtils.isMac () );
    final WebToggleButton toggle3 = new WebToggleButton ( DemoIcons.unix16, SystemUtils.isUnix () );
    final WebToggleButton toggle4 = new WebToggleButton ( DemoIcons.solaris16, SystemUtils.isSolaris () );
    toolBar.add ( new GroupPane ( toggle1, toggle2, toggle3, toggle4 ) );

    toolBar.addSeparator ( new Dimension ( 10, 10 ) );

    toolBar.add ( new WebLabel ( getExampleLanguageKey ( "label1" ) ) );
    toolBar.add ( new WebComboBox ( SampleData.createComboBoxModel () ) );

    return CollectionUtils.asList ( toolBar );
}
 
示例2
/**
 * Constructs new {@link HeatMapTool}.
 *
 * @param application {@link DemoApplication}
 */
public HeatMapTool ( final DemoApplication application )
{
    super ( StyleId.panelTransparent, new BorderLayout ( 0, 0 ) );

    // Heat map
    heatMap = new HeatMap ();

    // Magnifier glass switcher button
    final WebToggleButton heatMapButton = new WebToggleButton ( DemoStyles.toolButton, DemoIcons.fire16 );
    heatMapButton.setLanguage ( "demo.tool.heatmap" );
    heatMapButton.setSelected ( heatMap.isDisplayed () );
    heatMapButton.addActionListener ( new ActionListener ()
    {
        @Override
        public void actionPerformed ( final ActionEvent e )
        {
            heatMap.displayOrDispose ( application );
        }
    } );
    add ( heatMapButton );
}
 
示例3
private WebButtonGroup accessToggleGroup() {
	// do not change tooltips
	WebToggleButton private_ = new WebToggleButton(MethodListCellRenderer.pri);
	private_.setToolTipText("private");
	WebToggleButton public_ = new WebToggleButton(MethodListCellRenderer.pub);
	public_.setToolTipText("public");
	WebToggleButton protected_ = new WebToggleButton(MethodListCellRenderer.pro);
	protected_.setToolTipText("protected");
	WebToggleButton static_ = new WebToggleButton(MethodListCellRenderer.stat);
	static_.setToolTipText("static");
	WebToggleButton final_ = new WebToggleButton(MethodListCellRenderer.fin);
	final_.setToolTipText("final");
	WebToggleButton abstract_ = new WebToggleButton(MethodListCellRenderer.abs);
	abstract_.setToolTipText("abstract");
	WebToggleButton native_ = new WebToggleButton(MethodListCellRenderer.nat);
	native_.setToolTipText("native");
	WebToggleButton synchronized_ = new WebToggleButton(MethodListCellRenderer.syn);
	synchronized_.setToolTipText("synchronized");
	WebToggleButton synthetic_ = new WebToggleButton(MethodListCellRenderer.synth);
	synthetic_.setToolTipText("synthetic");

	private_.addActionListener(l -> {
		public_.setSelected(false);
		protected_.setSelected(false);
	});
	public_.addActionListener(l -> {
		protected_.setSelected(false);
		private_.setSelected(false);
	});
	protected_.addActionListener(l -> {
		public_.setSelected(false);
		private_.setSelected(false);
	});
	WebButtonGroup accessGroup = new WebButtonGroup(false, private_, public_, protected_, static_, final_, abstract_,
			native_, synchronized_, synthetic_);
	accessGroup.setButtonsDrawFocus(false);

	return accessGroup;
}
 
示例4
public void editMethod(MethodNode method) {
	this.method = method;
	this.name.setText(method.name);
	for (Field f : Opcodes.class.getDeclaredFields()) {
		try {
			if (f.getName().startsWith("ACC_")) {
				int acc = f.getInt(null);
				String accName = f.getName().substring(4).toLowerCase();
				for (Component c : access.getComponents()) {
					WebToggleButton tb = (WebToggleButton) c;
					if (tb.getToolTipText().equals(accName)) {
						tb.setSelected((method.access & acc) != 0);
						break;
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	this.arguments.setText(Descriptors.getDisplayTypeEditable(method.desc.split("\\)")[0].substring(1)));
	this.returns.setText(Descriptors.getDisplayTypeEditable(method.desc.split("\\)")[1]));
	if (method.signature != null) {
		hasSignature.setSelected(true);
		this.signature.setText(method.signature);
	} else {
		hasSignature.setSelected(false);
		this.signature.setText("");
	}
	this.exceptions.setText(String.join(", ", method.exceptions));
}
 
示例5
private WebButtonGroup accessToggleGroup() {
	// do not change tooltips
	WebToggleButton private_ = new WebToggleButton(MethodListCellRenderer.pri);
	private_.setToolTipText("private");
	WebToggleButton public_ = new WebToggleButton(MethodListCellRenderer.pub);
	public_.setToolTipText("public");
	WebToggleButton protected_ = new WebToggleButton(MethodListCellRenderer.pro);
	protected_.setToolTipText("protected");
	WebToggleButton abstract_ = new WebToggleButton(MethodListCellRenderer.abs);
	abstract_.setToolTipText("abstract");
	WebToggleButton final_ = new WebToggleButton(MethodListCellRenderer.fin);
	final_.setToolTipText("final");
	WebToggleButton synthetic_ = new WebToggleButton(MethodListCellRenderer.synth);
	synthetic_.setToolTipText("synthetic");

	private_.addActionListener(l -> {
		public_.setSelected(false);
		protected_.setSelected(false);
	});
	public_.addActionListener(l -> {
		protected_.setSelected(false);
		private_.setSelected(false);
	});
	protected_.addActionListener(l -> {
		public_.setSelected(false);
		private_.setSelected(false);
	});
	WebButtonGroup accessGroup = new WebButtonGroup(false, private_, public_, protected_, abstract_, final_,
			synthetic_);
	accessGroup.setButtonsDrawFocus(false);

	return accessGroup;
}
 
示例6
public void editClass(ClassNode clazz) {
	this.clazz = clazz;
	this.name.setText(clazz.name);
	for (Field f : Opcodes.class.getDeclaredFields()) {
		try {
			if (f.getName().startsWith("ACC_")) {
				int acc = f.getInt(null);
				String accName = f.getName().substring(4).toLowerCase();
				for (Component c : access.getComponents()) {
					WebToggleButton tb = (WebToggleButton) c;
					if (tb.getToolTipText().equals(accName)) {
						tb.setSelected((clazz.access & acc) != 0);
						break;
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	this.superName.setText(clazz.superName);
	this.sourceFile.setText(clazz.sourceFile);
	this.version.setSelectedItem(clazz.version);
	if (clazz.signature != null) {
		hasSignature.setSelected(true);
		this.signature.setText(clazz.signature);
	} else {
		hasSignature.setSelected(false);
	}
}
 
示例7
@NotNull
@Override
protected List<? extends JComponent> createPreviewElements ()
{
    final WebToggleButton b1 = new WebToggleButton ( "First", true );
    final WebToggleButton b2 = new WebToggleButton ( "Second" );
    final WebToggleButton b3 = new WebToggleButton ( "Third" );
    final WebToggleButton b4 = new WebToggleButton ( "Last" );
    final GroupPane groupPane = new GroupPane ( getStyleId (), b1, b2, b3, b4 );
    SwingUtils.equalizeComponentsWidth ( groupPane.getComponents () );
    return CollectionUtils.asList ( groupPane );
}
 
示例8
@NotNull
@Override
protected List<? extends JComponent> createPreviewElements ()
{
    // Menu bar
    final JMenuBar menuBar = createMenuBar ();

    // Menu bar in native dialog
    final WebToggleButton nativeDialog = createDialogButton ( "native", StyleId.dialog );

    // Menu bar in decorated dialog
    final WebToggleButton decoratedDialog = createDialogButton ( "decorated", StyleId.dialogDecorated );

    return CollectionUtils.asList ( menuBar, nativeDialog, decoratedDialog );
}
 
示例9
private static WebPanel createListPanel(final WebTable list,
                                        String overlayText,
                                        WebToggleButton button) {
    // overlay for empty list
    WebOverlay listOverlay = new WebOverlay(list);
    listOverlay.setOverlayMargin(20);
    final WebTextArea overlayArea = new WebTextArea();
    overlayArea.setText(overlayText);
    overlayArea.setLineWrap(true);
    overlayArea.setWrapStyleWord(true);
    overlayArea.setMargin(View.MARGIN_DEFAULT);
    overlayArea.setFontSize(View.FONT_SIZE_BIG);
    overlayArea.setEditable(false);
    BorderPainter<WebTextArea> borderPainter = new BorderPainter<>(Color.LIGHT_GRAY);
    borderPainter.setRound(15);
    overlayArea.setPainter(borderPainter);
    list.getModel().addTableModelListener(new TableModelListener() {
        @Override
        public void tableChanged(TableModelEvent e) {
            overlayArea.setVisible(list.getModel().getRowCount() == 0);
        }
    });
    overlayArea.setVisible(list.getModel().getRowCount() == 0);
    listOverlay.addOverlay(overlayArea, SwingConstants.CENTER, SwingConstants.CENTER);

    WebScrollPane scrollPane = new ComponentUtils.ScrollPane(listOverlay);
    scrollPane.setDrawBorder(false);

    // button as overlay
    button.setOpaque(false);
    button.setUndecorated(true);
    WebOverlay chatListOverlay = new WebOverlay(scrollPane,
            button, SwingConstants.TRAILING, SwingConstants.BOTTOM);
    chatListOverlay.setOverlayMargin(0, 0, View.GAP_BIG, View.GAP_BIG + SCROLL_BAR_WIDTH);
    // fixing overlay button paint bug on startup, dont wanna know whats happening here
    SwingUtils.delayInvokeLater(0, new Runnable() {
        @Override
        public void run() {
            TooltipManager.showOneTimeTooltip(list, new Point(1,1), "");
        }
    });

    return chatListOverlay;
}
 
示例10
/**
 * Returns new dialog preview button.
 *
 * @param text          button text
 * @param dialogStyleId dialog {@link StyleId}
 * @return new dialog preview button
 */
protected WebToggleButton createDialogButton ( final String text, final StyleId dialogStyleId )
{
    final String showText = getExampleLanguagePrefix () + text;
    final WebToggleButton showButton = new WebToggleButton ( showText, Icons.external );
    showButton.addActionListener ( new ActionListener ()
    {
        /**
         * Dialog containing menu bar.
         */
        private WebDialog dialog;

        @Override
        public void actionPerformed ( final ActionEvent e )
        {
            if ( dialog == null || !dialog.isVisible () )
            {
                if ( dialog == null )
                {
                    dialog = new WebDialog ( dialogStyleId, DemoApplication.getInstance (), getTitle () );
                    dialog.setJMenuBar ( createMenuBar () );

                    final String contentText = getExampleLanguagePrefix () + "content";
                    final WebLabel contentLabel = new WebLabel ( contentText, SwingConstants.CENTER );
                    dialog.add ( contentLabel.setPreferredSize ( 300, 250 ) );

                    dialog.setDefaultCloseOperation ( WindowConstants.DISPOSE_ON_CLOSE );
                    dialog.setModal ( false );

                    dialog.onClose ( new ComponentEventRunnable ()
                    {
                        @Override
                        public void run ( @NotNull final ComponentEvent event )
                        {
                            if ( showButton.isSelected () )
                            {
                                showButton.setSelected ( false );
                            }
                        }
                    } );
                }
                dialog.pack ();
                dialog.setLocationRelativeTo ( DemoApplication.getInstance () );
                dialog.setVisible ( true );
            }
            else
            {
                dialog.dispose ();
            }
        }
    } );
    return showButton;
}
 
示例11
/**
 * Constructs new {@link InterfaceInspector} for the specified {@link Component} and its childrens tree.
 *
 * @param id        {@link StyleId}
 * @param inspected {@link Component} to inspect
 */
public InterfaceInspector ( @NotNull final StyleId id, @Nullable final Component inspected )
{
    super ( id );

    // Tree scroll
    final WebScrollPane scrollPane = new WebScrollPane ( StyleId.inspectorScroll.at ( InterfaceInspector.this ) );
    scrollPane.setPreferredWidth ( 300 );

    // Interface tree
    tree = new InterfaceTree ( StyleId.inspectorTree.at ( scrollPane ), inspected );
    scrollPane.getViewport ().setView ( tree );

    // Filtering field
    final WebTreeFilterField filter = new WebTreeFilterField ( StyleId.inspectorFilter.at ( InterfaceInspector.this ), tree );

    // Component inspect behavior
    final WebToggleButton inspectToggle = new WebToggleButton ( StyleId.inspectorInspect.at ( filter ), Icons.target );
    inspectToggle.setRolloverIcon ( Icons.targetHover );
    inspectToggle.setSelectedIcon ( Icons.targetSelected );
    inspectToggle.setCursor ( Cursor.getDefaultCursor () );
    inspectToggle.addHotkey ( Hotkey.CTRL_I );
    inspectToggle.addActionListener ( new ActionListener ()
    {
        @Override
        public void actionPerformed ( @NotNull final ActionEvent e )
        {
            if ( inspectToggle.isSelected () )
            {
                if ( inspectBehavior == null )
                {
                    inspectBehavior = new ComponentInspectBehavior ();
                }
                if ( !inspectBehavior.isInstalled () )
                {
                    inspectBehavior.install ( inspected, new InspectionListener ()
                    {
                        @Override
                        public void inspected ( @NotNull final Component component )
                        {
                            tree.navigate ( component );
                            inspectToggle.setSelected ( false );
                            tree.requestFocusInWindow ();
                        }

                        @Override
                        public void cancelled ()
                        {
                            inspectToggle.setSelected ( false );
                        }
                    } );
                }
            }
            else
            {
                if ( inspectBehavior != null && inspectBehavior.isInstalled () )
                {
                    inspectBehavior.uninstall ();
                }
            }
        }
    } );
    filter.setTrailingComponent ( inspectToggle );

    // UI composition
    final WebSeparator separator = new WebSeparator ( StyleId.inspectorSeparator.at ( InterfaceInspector.this ) );
    add ( new GroupPanel ( GroupingType.fillLast, 0, false, filter, separator, scrollPane ) );

    // Expanding tree root by default
    tree.expandRoot ();

    // Visibility behavior
    new VisibilityBehavior<InterfaceInspector> ( this, true )
    {
        @Override
        protected void hidden ( @NotNull final InterfaceInspector inspector )
        {
            if ( inspectBehavior != null && inspectBehavior.isInstalled () )
            {
                inspectBehavior.uninstall ();
            }
        }
    }.install ();
}
 
示例12
/**
 * Customizes {@link WebToggleButton} representing single {@link Date}.
 *
 * @param button {@link WebToggleButton} to customize
 * @param date   {@link Date}
 */
public void customize ( WebToggleButton button, Date date );