@Override public void setModel( BasicButtonModel model ){ BasicButtonModel old = getModel(); if( old != null ) old.removeListener( listener ); super.setModel( model ); if( model != null ) model.addListener( listener ); } }
public void run(){ if( !model.isMousePressed() ){ requestFocusInWindow(); invokeAfterFocusRequest(); } } });
/** * Creates the new button. * @param trigger the callback that is invoked when the user clicks onto this button * @param initializer a strategy to lazily initialize resources */ public BasicMiniButton( BasicTrigger trigger, BasicResourceInitializer initializer ) { super( null ); BasicButtonModel model = new BasicButtonModel( this, trigger, initializer ); setModel( model ); } }
private void updateFont(){ if( font != null ){ font.connect( null ); } font = null; if( model != null ){ font = new ButtonFont( DockFont.ID_BUTTON, model.getDockable(), model.getAction(), null ){ @Override protected void changed( FontModifier oldValue, FontModifier newValue ){ label.setFontModifier( newValue ); } }; } }
public void paintIcon( Component c, Graphics g, int x, int y ){ Icon icon = model.getPaintIcon(); if( icon != null ){ Dimension min = getMinimumIconSize(); Dimension max = model.getMaxIconSize(); int dx = (Math.max( max.width, min.width ) - icon.getIconWidth()) / 2; int dy = (Math.max( max.height, min.height ) - icon.getIconHeight()) / 2; icon.paintIcon( c, g, x+dx, y+dy ); } }
private void doPaintBackground( Graphics g ){ Color background = getBackground(); Color border = null; if( model.isMousePressed() ){ border = Colors.diffMirror( background, 0.3 ); background = Colors.undiffMirror( background, 0.6 ); } else if( model.isSelected() || model.isMouseInside() ){ border = Colors.diffMirror( background, 0.3 ); background = Colors.undiffMirror( background, 0.3 ); } int w = getWidth()-1; int h = getHeight()-1; if( border != null ){ g.setColor( background ); g.fillRoundRect( 0, 0, w, h, 4, 4 ); g.setColor( border ); g.drawRoundRect( 0, 0, w, h, 4, 4 ); } }
boolean mousePressed = model.isMousePressed(); boolean mouseEntered = model.isMouseInside(); boolean selected = model.isSelected(); boolean enabled = model.isEnabled();
@Override public void triggered(){ if( getModel().isMousePressed() ) getAction().onMouseReleased( getItem(), getModel().getOrientation() ); else getAction().onTrigger( getItem(), getModel().getOrientation() ); }
/** * Updates the content (icon, text, orientation, ...) of this {@link MiniButtonContent}. */ protected void updateContent(){ if( model == null ){ label.setIcon( null ); label.setText( null ); label.setHorizontal( true ); label.setEnabled( true ); } else{ label.setIcon( new ForwardIcon() ); label.setText( model.getText() ); label.setHorizontal( model.getOrientation().isHorizontal() ); label.setEnabled( model.isEnabled() ); } }
model = new BasicButtonModel( this, trigger, initializer, true ); setOpaque( false ); setFocusable( true ); content.setForegroundColorId( "action.button.text", "action.button.text.disabled" ); model.addListener( new BasicButtonModelAdapter(){ @Override public void mousePressed( BasicButtonModel model, boolean mousePressed ){
@Override public void paint( Graphics g ){ BackgroundPaint paint = model.getBackground(); BackgroundComponent component = model.getBackgroundComponent();
@Override protected void updateColors(){ if( getModel().isMouseInside() || getModel().isMousePressed() ){ animate( "top", "stack.menu.background.top.mouse" ); animate( "bottom", "stack.menu.background.bottom.mouse" ); animate( "border", "stack.menu.border.mouse" ); } else{ animate( "top", "stack.menu.background.top" ); animate( "bottom", "stack.menu.background.bottom" ); animate( "border", "stack.menu.border" ); } }
JComponent component = getModel().getOwner(); if( getModel().getOrientation().isHorizontal() ) popup.popup( component, 0, component.getHeight() ); else
@Override public void mousePressed( BasicButtonModel model, boolean mousePressed ){ if( mousePressed ){ getAction().onMousePressed( getItem(), getModel().getOrientation() ); } } };
model.addListener( new BasicButtonModelAdapter(){ @Override public void mousePressed( BasicButtonModel model, boolean mousePressed ){
public int getIconWidth(){ Dimension min = getMinimumIconSize(); return Math.max( min.width, model.getMaxIconSize().width ); }
private void doPaintForeground( Graphics g ){ Color background = getBackground(); if( model.isMousePressed() ){ background = Colors.undiffMirror( background, 0.6 ); else if( model.isSelected() || model.isMouseInside() ){ background = Colors.undiffMirror( background, 0.3 );
/** * Changes the current border. Uses various states to determine the * correct border. */ protected void updateBorder(){ if( model.isEnabled() && model.isMousePressed() ){ if( model.isSelected() ) setBorder( getBorder( getMousePressedSelectedBorder(), borderKeyMousePressedSelected ) ); else setBorder( getBorder( getMousePressedBorder(), borderKeyMousePressed ) ); } else if( model.isEnabled() && model.isMouseInside() ){ if( model.isSelected() ) setBorder( getBorder( getMouseOverSelectedBorder(), borderKeyMouseOverSelected ) ); else setBorder( getBorder( getMouseOverBorder(), borderKeyMouseOver ) ); } else{ if( model.isSelected() ) setBorder( getBorder( getNormalSelectedBorder(), borderKeyNormalSelected ) ); else setBorder( getBorder( getNormalBorder(), borderKeyNormal ) ); } }
@Override public void triggered(){ if( getModel().isMousePressed() ) getAction().onMouseReleased( getDockable(), getItem(), getModel().getOrientation() ); else getAction().onTrigger( getDockable(), getItem(), getModel().getOrientation() ); }
/** * Updates the content (icon, text, orientation, ...) of this {@link MiniButtonContent}. */ protected void updateContent(){ if( model == null ){ label.setIcon( null ); label.setText( null ); label.setHorizontal( true ); label.setEnabled( true ); } else{ label.setIcon( new ForwardIcon() ); label.setText( model.getText() ); label.setHorizontal( model.getOrientation().isHorizontal() ); label.setEnabled( model.isEnabled() ); } }