/** * Initializer called by the constructor. * @param dockable The Dockable whose title this will be * @param origin The version which was used to create this title */ protected void init( Dockable dockable, DockTitleVersion origin ){ this.dockable = dockable; this.origin = origin; label.setBackground( background ); setBackground( background ); setLayout( null ); add( label ); setActive( false ); setFocusTraversalPolicyProvider( true ); setFocusTraversalPolicy( new ContainerOrderFocusTraversalPolicy(){ @Override protected boolean accept( Component component ) { return component != AbstractMultiDockTitle.this && super.accept( component ); } }); setOpaque( false ); rootHandler = createRootHandler(); rootHandler.addRoot( getComponent() ); }
/** * Tells this title whether it should be disabled or not. This method is called when the {@link DisablingStrategy} * changes. A disabled title should react to any {@link InputEvent}, and should be painted differently than an * enabled title. * @param disabled whether this title is disabled * @see #isDisabled() */ protected void setDisabled( boolean disabled ){ if( this.disabled != disabled ){ this.disabled = disabled; label.setEnabled( !disabled ); setEnabled( !disabled ); if( disabled ){ for( MouseInputListener listener : mouseInputListeners ){ doRemoveMouseInputListener( listener ); } } else{ for( MouseInputListener listener : mouseInputListeners ){ doAddMouseInputListener( listener ); } } } }
public void removeMouseInputListener( MouseInputListener listener ) { mouseInputListeners.remove( listener ); if( !isDisabled() ){ doRemoveMouseInputListener( listener ); } }
public void addMouseInputListener( MouseInputListener listener ) { mouseInputListeners.add( listener ); if( !isDisabled() ){ doAddMouseInputListener( listener ); } }
private void doAddMouseInputListener( MouseInputListener listener ){ addMouseListener( listener ); addMouseMotionListener( listener ); label.addMouseListener( listener ); label.addMouseMotionListener( listener ); }
/** * Adds a new conditional font to this title, the conditional font will * be applied to {@link #setFont(Font)} when its <code>condition</code> * is met. If there is more than one font whose condition is met, then the * first one that was registered is used. * @param id the id of the font which is to be used * @param kind what kind of title this is * @param condition the condition to met * @param backup to be used when there is not font set in the {@link FontManager} */ protected void addConditionalFont( String id, Path kind, Condition condition, FontModifier backup ){ ConditionalFont font = new ConditionalFont( id, kind, condition, backup ); addFont( font ); if( conditionalFonts == null ) conditionalFonts = new ArrayList<ConditionalFont>(); conditionalFonts.add( font ); updateFonts(); }
@Override public void doLayout(){ super.doLayout(); doTitleLayout(); }
@Override public void bind() { DockController controller = getDockable().getController(); if( itemPanel != null ){ Dockable dockable = getDockable(); itemPanel.set( dockable, getActionSourceFor( dockable ) ); itemPanel.setController( controller ); } super.bind(); }
private void doAddMouseInputListener( MouseInputListener listener ){ addMouseListener( listener ); addMouseMotionListener( listener ); label.addMouseListener( listener ); label.addMouseMotionListener( listener ); }
public void removeMouseInputListener( MouseInputListener listener ) { mouseInputListeners.remove( listener ); if( !isDisabled() ){ doRemoveMouseInputListener( listener ); } }
public void addMouseInputListener( MouseInputListener listener ) { mouseInputListeners.add( listener ); if( !isDisabled() ){ doAddMouseInputListener( listener ); } }
/** * Adds a new conditional font to this title, the conditional font will * be applied to {@link #setFont(Font)} when its <code>condition</code> * is met. If there is more than one font whose condition is met, then the * first one that was registered is used. * @param id the id of the font which is to be used * @param kind what kind of title this is * @param condition the condition to met * @param backup to be used when there is not font set in the {@link FontManager} */ protected void addConditionalFont( String id, Path kind, Condition condition, FontModifier backup ){ ConditionalFont font = new ConditionalFont( id, kind, condition, backup ); addFont( font ); if( conditionalFonts == null ) conditionalFonts = new ArrayList<ConditionalFont>(); conditionalFonts.add( font ); updateFonts(); }
@Override public void doLayout(){ super.doLayout(); doTitleLayout(); }
@Override public void bind(){ if( !isBound() ) { Dockable dockable = getDockable(); source = getSourceFor( dockable ); if( source != null ) { for( int i = 0, n = source.getSourceCount(); i < n; i++ ) { createPanel( source.getSource( i ), i ); } source.addListener( listener ); } directPanel.set( dockable, getActionSourceFor( dockable ) ); } super.bind(); }
/** * Initializer called by the constructor. * @param dockable The Dockable whose title this will be * @param origin The version which was used to create this title */ protected void init( Dockable dockable, DockTitleVersion origin ){ this.dockable = dockable; this.origin = origin; label.setBackground( background ); setBackground( background ); setLayout( null ); add( label ); setActive( false ); setFocusTraversalPolicyProvider( true ); setFocusTraversalPolicy( new ContainerOrderFocusTraversalPolicy(){ @Override protected boolean accept( Component component ) { return component != AbstractMultiDockTitle.this && super.accept( component ); } }); setOpaque( false ); rootHandler = createRootHandler(); rootHandler.addRoot( getComponent() ); }
/** * Tells this title whether it should be disabled or not. This method is called when the {@link DisablingStrategy} * changes. A disabled title should react to any {@link InputEvent}, and should be painted differently than an * enabled title. * @param disabled whether this title is disabled * @see #isDisabled() */ protected void setDisabled( boolean disabled ){ if( this.disabled != disabled ){ this.disabled = disabled; label.setEnabled( !disabled ); setEnabled( !disabled ); if( disabled ){ for( MouseInputListener listener : mouseInputListeners ){ doRemoveMouseInputListener( listener ); } } else{ for( MouseInputListener listener : mouseInputListeners ){ doAddMouseInputListener( listener ); } } } }