| 1 11 package org.eclipse.jface.action; 12 13 import org.eclipse.jface.resource.ImageDescriptor; 14 import org.eclipse.swt.events.HelpListener; 15 import org.eclipse.swt.widgets.Control; 16 import org.eclipse.swt.widgets.Event; 17 import org.eclipse.swt.widgets.Menu; 18 19 26 public abstract class Action extends AbstractAction implements IAction { 27 28 private static final IMenuCreator VAL_DROP_DOWN_MENU = new IMenuCreator() { 29 public void dispose() { 30 } 32 33 public Menu getMenu(Control parent) { 34 return null; 36 } 37 38 public Menu getMenu(Menu parent) { 39 return null; 41 } 42 }; 43 44 48 private static final String VAL_PUSH_BTN = "PUSH_BTN"; 50 private static final Integer VAL_RADIO_BTN_OFF = new Integer (0); 51 52 private static final Integer VAL_RADIO_BTN_ON = new Integer (1); 53 54 private static final Boolean VAL_TOGGLE_BTN_OFF = Boolean.FALSE; 55 56 private static final Boolean VAL_TOGGLE_BTN_ON = Boolean.TRUE; 57 58 65 public static String convertAccelerator(int keyCode) { 66 return LegacyActionTools.convertAccelerator(keyCode); 67 } 68 69 77 public static int convertAccelerator(String acceleratorText) { 78 return LegacyActionTools.convertAccelerator(acceleratorText); 79 } 80 81 111 public static int findKeyCode(String token) { 112 return LegacyActionTools.findKeyCode(token); 113 } 114 115 128 public static String findKeyString(int keyCode) { 129 return LegacyActionTools.findKeyString(keyCode); 130 } 131 132 144 public static int findModifier(String token) { 145 return LegacyActionTools.findModifier(token); 146 } 147 148 160 public static String findModifierString(int keyCode) { 161 return LegacyActionTools.findModifierString(keyCode); 162 } 163 164 173 public static String removeAcceleratorText(String text) { 174 return LegacyActionTools.removeAcceleratorText(text); 175 } 176 177 188 public static String removeMnemonics(String text) { 189 return LegacyActionTools.removeMnemonics(text); 190 } 191 192 195 private int accelerator = 0; 196 197 200 private String actionDefinitionId; 201 202 205 private String description; 206 207 210 private ImageDescriptor disabledImage; 211 212 215 private boolean enabled = true; 216 217 220 private HelpListener helpListener; 221 222 225 private ImageDescriptor hoverImage; 226 227 230 private String id; 231 232 235 private ImageDescriptor image; 236 237 240 private String text; 241 242 245 private String toolTipText; 246 247 255 private Object value = null; 256 257 263 protected Action() { 264 } 266 267 276 protected Action(String text) { 277 this(); 278 setText(text); 279 } 280 281 294 protected Action(String text, ImageDescriptor image) { 295 this(text); 296 setImageDescriptor(image); 297 } 298 299 310 protected Action(String text, int style) { 311 this(text); 312 switch (style) { 313 case AS_PUSH_BUTTON: 314 value = VAL_PUSH_BTN; 315 break; 316 case AS_CHECK_BOX: 317 value = VAL_TOGGLE_BTN_OFF; 318 break; 319 case AS_DROP_DOWN_MENU: 320 value = VAL_DROP_DOWN_MENU; 321 break; 322 case AS_RADIO_BUTTON: 323 value = VAL_RADIO_BTN_OFF; 324 break; 325 } 326 } 327 328 331 public int getAccelerator() { 332 return accelerator; 333 } 334 335 339 public String getActionDefinitionId() { 340 return actionDefinitionId; 341 } 342 343 346 public String getDescription() { 347 if (description != null) { 348 return description; 349 } 350 return getToolTipText(); 351 } 352 353 356 public ImageDescriptor getDisabledImageDescriptor() { 357 return disabledImage; 358 } 359 360 363 public HelpListener getHelpListener() { 364 return helpListener; 365 } 366 367 370 public ImageDescriptor getHoverImageDescriptor() { 371 return hoverImage; 372 } 373 374 377 public String getId() { 378 return id; 379 } 380 381 384 public ImageDescriptor getImageDescriptor() { 385 return image; 386 } 387 388 391 public IMenuCreator getMenuCreator() { 392 if (value == VAL_DROP_DOWN_MENU) { 396 return null; 397 } 398 if (value instanceof IMenuCreator) { 399 return (IMenuCreator) value; 400 } 401 return null; 402 } 403 404 407 public int getStyle() { 408 if (value == VAL_PUSH_BTN || value == null) { 410 return AS_PUSH_BUTTON; 411 } 412 if (value == VAL_TOGGLE_BTN_ON || value == VAL_TOGGLE_BTN_OFF) { 413 return AS_CHECK_BOX; 414 } 415 if (value == VAL_RADIO_BTN_ON || value == VAL_RADIO_BTN_OFF) { 416 return AS_RADIO_BUTTON; 417 } 418 if (value instanceof IMenuCreator) { 419 return AS_DROP_DOWN_MENU; 420 } 421 422 return AS_PUSH_BUTTON; 424 } 425 426 429 public String getText() { 430 return text; 431 } 432 433 436 public String getToolTipText() { 437 return toolTipText; 438 } 439 440 443 public boolean isChecked() { 444 return value == VAL_TOGGLE_BTN_ON || value == VAL_RADIO_BTN_ON; 445 } 446 447 450 public boolean isEnabled() { 451 return enabled; 452 } 453 454 457 public boolean isHandled() { 458 return true; 459 } 460 461 471 public final void notifyResult(boolean success) { 472 firePropertyChange(RESULT, null, success ? Boolean.TRUE : Boolean.FALSE); 475 } 476 477 483 public void run() { 484 } 486 487 497 public void runWithEvent(Event event) { 498 run(); 499 } 500 501 504 public void setAccelerator(int keycode) { 505 this.accelerator = keycode; 506 } 507 508 511 public void setActionDefinitionId(String id) { 512 actionDefinitionId = id; 513 } 514 515 518 public void setChecked(boolean checked) { 519 Object newValue = null; 520 521 if (value == null || value == VAL_TOGGLE_BTN_ON 524 || value == VAL_TOGGLE_BTN_OFF) { 525 newValue = checked ? VAL_TOGGLE_BTN_ON : VAL_TOGGLE_BTN_OFF; 526 } else if (value == VAL_RADIO_BTN_ON || value == VAL_RADIO_BTN_OFF) { 527 newValue = checked ? VAL_RADIO_BTN_ON : VAL_RADIO_BTN_OFF; 528 } else { 529 return; 531 } 532 533 if (newValue != value) { 534 value = newValue; 535 if (checked) { 536 firePropertyChange(CHECKED, Boolean.FALSE, Boolean.TRUE); 537 } else { 538 firePropertyChange(CHECKED, Boolean.TRUE, Boolean.FALSE); 539 } 540 } 541 } 542 543 546 public void setDescription(String text) { 547 548 if ((description == null && text != null) 549 || (description != null && text == null) 550 || (description != null && text != null && !text 551 .equals(description))) { 552 String oldDescription = description; 553 description = text; 554 firePropertyChange(DESCRIPTION, oldDescription, description); 555 } 556 } 557 558 561 public void setDisabledImageDescriptor(ImageDescriptor newImage) { 562 if (disabledImage != newImage) { 563 ImageDescriptor oldImage = disabledImage; 564 disabledImage = newImage; 565 firePropertyChange(IMAGE, oldImage, newImage); 566 } 567 } 568 569 572 public void setEnabled(boolean enabled) { 573 if (enabled != this.enabled) { 574 Boolean oldVal = this.enabled ? Boolean.TRUE : Boolean.FALSE; 575 Boolean newVal = enabled ? Boolean.TRUE : Boolean.FALSE; 576 this.enabled = enabled; 577 firePropertyChange(ENABLED, oldVal, newVal); 578 } 579 } 580 581 584 public void setHelpListener(HelpListener listener) { 585 helpListener = listener; 586 } 587 588 591 public void setHoverImageDescriptor(ImageDescriptor newImage) { 592 if (hoverImage != newImage) { 593 ImageDescriptor oldImage = hoverImage; 594 hoverImage = newImage; 595 firePropertyChange(IMAGE, oldImage, newImage); 596 } 597 } 598 599 602 public void setId(String id) { 603 this.id = id; 604 } 605 606 609 public void setImageDescriptor(ImageDescriptor newImage) { 610 if (image != newImage) { 611 ImageDescriptor oldImage = image; 612 image = newImage; 613 firePropertyChange(IMAGE, oldImage, newImage); 614 } 615 } 616 617 626 public void setMenuCreator(IMenuCreator creator) { 627 if (value == null) { 630 value = creator; 631 return; 632 } 633 634 if (value instanceof IMenuCreator) { 635 value = creator == null ? VAL_DROP_DOWN_MENU : creator; 636 } 637 } 638 639 656 public void setText(String text) { 657 String oldText = this.text; 658 int oldAccel = this.accelerator; 659 this.text = text; 660 if (text != null) { 661 String acceleratorText = LegacyActionTools 662 .extractAcceleratorText(text); 663 if (acceleratorText != null) { 664 int newAccelerator = LegacyActionTools 665 .convertLocalizedAccelerator(acceleratorText); 666 if (newAccelerator > 0) { 668 setAccelerator(newAccelerator); 669 } 670 } 671 } 672 if (!(this.accelerator == oldAccel && (oldText == null ? this.text == null 673 : oldText.equals(this.text)))) { 674 firePropertyChange(TEXT, oldText, this.text); 675 } 676 } 677 678 688 public void setToolTipText(String toolTipText) { 689 String oldToolTipText = this.toolTipText; 690 if (!(oldToolTipText == null ? toolTipText == null : oldToolTipText 691 .equals(toolTipText))) { 692 this.toolTipText = toolTipText; 693 firePropertyChange(TOOL_TIP_TEXT, oldToolTipText, toolTipText); 694 } 695 } 696 697 } 698 | Popular Tags |