43a44,50 > private boolean myIsUsable; > > /** > * Flag to indicate whether to perform usable checks or not > */ > private boolean myIsEnabled; > 49a57 > setEnabled(true); 74c82,83 < if ((isActive() == true) && (view() != null)) { --- > if (isActive()) { > if (view() != null) { 75a85 > } 86c96 < if (isActive() == true) { --- > if (isActive()) { 89a100 > 162c173,205 < return (view() != null) && (view().isInteractive()); --- > return isEnabled() && myIsUsable; > } > > public void setUsable(boolean newIsUsable) { > // perform notification only if the usable state of the tool has changed > if (isUsable() != newIsUsable) { > myIsUsable = newIsUsable; > if (isUsable()) { > getEventDispatcher().fireToolUsableEvent(); > } > else { > getEventDispatcher().fireToolUnusableEvent(); > } > } > } > > public void setEnabled(boolean newIsEnabled) { > // perform notification only if the usable state of the tool has changed > if (isEnabled() != newIsEnabled) { > myIsEnabled = newIsEnabled; > if (isEnabled()) { > getEventDispatcher().fireToolEnabledEvent(); > } > else { > getEventDispatcher().fireToolDisabledEvent(); > setUsable(false); > deactivate(); > } > } > } > > public boolean isEnabled() { > return myIsEnabled; 174c217 < return editor().tool() == this; --- > return (editor().tool() == this) && isUsable(); 198,202c241,242 < if (isUsable()) { < getEventDispatcher().fireToolUsableEvent(); < } < else { < getEventDispatcher().fireToolUnusableEvent(); --- > if (isEnabled()) { > setUsable((view() != null) && view().isInteractive()); 242a283,296 > public void fireToolEnabledEvent() { > Enumeration le = myRegisteredListeners.elements(); > while (le.hasMoreElements()) { > ((ToolListener)le.nextElement()).toolEnabled(new EventObject(myObservedTool)); > } > } > > public void fireToolDisabledEvent() { > Enumeration le = myRegisteredListeners.elements(); > while (le.hasMoreElements()) { > ((ToolListener)le.nextElement()).toolDisabled(new EventObject(myObservedTool)); > } > } >