43a44,50 > private boolean myIsUsable; > > /** > * Flag to indicate whether to perform usable checks or not > */ > private boolean myIsEnabled; > 49a57,57 > setEnabled(true); 73a82,82 > if (isActive()) { 74,74c83,83 < if ((isActive() == true) && (view() != null)) { --- > if (view() != null) { 75a85,85 > } 86,86c96,96 < if (isActive() == true) { --- > if (isActive()) { 89a100,100 > 161a241,241 > if (isEnabled()) { 161a173,205 > 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; 162,162c242,242 < return (view() != null) && (view().isInteractive()); --- > setUsable((view() != null) && view().isInteractive()); 174,174c217,217 < return editor().tool() == this; --- > return (editor().tool() == this) && isUsable(); 198,202d240 < if (isUsable()) { < getEventDispatcher().fireToolUsableEvent(); < } < else { < getEventDispatcher().fireToolUnusableEvent(); 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)); > } > } >