1 11 12 package org.eclipse.ui.internal.quickaccess; 13 14 import org.eclipse.jface.preference.IPreferenceNode; 15 import org.eclipse.jface.resource.ImageDescriptor; 16 import org.eclipse.swt.graphics.Image; 17 import org.eclipse.ui.IWorkbenchWindow; 18 import org.eclipse.ui.PlatformUI; 19 import org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog; 20 21 25 public class PreferenceElement extends QuickAccessElement { 26 27 private static final String separator = " - "; 29 private IPreferenceNode preferenceNode; 30 31 private String prefix; 32 33 PreferenceElement(IPreferenceNode preferenceNode, String prefix, PreferenceProvider preferenceProvider) { 34 super(preferenceProvider); 35 this.preferenceNode = preferenceNode; 36 this.prefix = prefix; 37 } 38 39 public void execute() { 40 IWorkbenchWindow window = PlatformUI.getWorkbench() 41 .getActiveWorkbenchWindow(); 42 if (window != null) { 43 WorkbenchPreferenceDialog dialog = WorkbenchPreferenceDialog 44 .createDialogOn(window.getShell(), preferenceNode.getId()); 45 dialog.open(); 46 } 47 } 48 49 public String getId() { 50 return preferenceNode.getId(); 51 } 52 53 public ImageDescriptor getImageDescriptor() { 54 Image image = preferenceNode.getLabelImage(); 55 if (image != null) { 56 ImageDescriptor descriptor = ImageDescriptor.createFromImage(image); 57 return descriptor; 58 } 59 return null; 60 } 61 62 public String getLabel() { 63 if (prefix != null && prefix.length() > 0) { 64 return preferenceNode.getLabelText() + separator 65 + prefix; 66 } 67 return preferenceNode.getLabelText(); 68 } 69 70 public int hashCode() { 71 final int prime = 31; 72 int result = 1; 73 result = prime * result 74 + ((preferenceNode == null) ? 0 : preferenceNode.hashCode()); 75 return result; 76 } 77 78 public boolean equals(Object obj) { 79 if (this == obj) 80 return true; 81 if (obj == null) 82 return false; 83 if (getClass() != obj.getClass()) 84 return false; 85 final PreferenceElement other = (PreferenceElement) obj; 86 if (preferenceNode == null) { 87 if (other.preferenceNode != null) 88 return false; 89 } else if (!preferenceNode.equals(other.preferenceNode)) 90 return false; 91 return true; 92 } 93 } 94 | Popular Tags |