]> git.uio.no Git - ifi-stolz-refaktor.git/blame - case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/typehierarchy/HistoryAction.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-after / ui / org / eclipse / jdt / internal / ui / typehierarchy / HistoryAction.java
CommitLineData
1b2798f6
EK
1/*******************************************************************************
2 * Copyright (c) 2000, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * IBM Corporation - initial API and implementation
10 *******************************************************************************/
11package org.eclipse.jdt.internal.ui.typehierarchy;
12
13import org.eclipse.core.runtime.Assert;
14
15import org.eclipse.jface.action.Action;
16import org.eclipse.jface.resource.ImageDescriptor;
17import org.eclipse.jface.viewers.StyledString;
18
19import org.eclipse.ui.PlatformUI;
20
21import org.eclipse.jdt.core.IJavaElement;
22
23import org.eclipse.jdt.internal.corext.util.Messages;
24
25import org.eclipse.jdt.ui.JavaElementLabels;
26
27import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
28import org.eclipse.jdt.internal.ui.viewsupport.JavaElementImageProvider;
29
30/**
31 * Action used for the type hierarchy forward / backward buttons
32 */
33public class HistoryAction extends Action {
34
35 private TypeHierarchyViewPart fViewPart;
36 private IJavaElement[] fElements;
37
38 public HistoryAction(TypeHierarchyViewPart viewPart, IJavaElement[] elements) {
39 super("", AS_RADIO_BUTTON); //$NON-NLS-1$
40 fViewPart= viewPart;
41 fElements= elements;
42
43 String elementName= getElementLabel(elements);
44 setText(elementName);
45 setImageDescriptor(getImageDescriptor(elements[0]));
46
47 setDescription(Messages.format(TypeHierarchyMessages.HistoryAction_description, elementName));
48 setToolTipText(Messages.format(TypeHierarchyMessages.HistoryAction_tooltip, elementName));
49 PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IJavaHelpContextIds.HISTORY_ACTION);
50 }
51
52 private ImageDescriptor getImageDescriptor(IJavaElement elem) {
53 JavaElementImageProvider imageProvider= new JavaElementImageProvider();
54 ImageDescriptor desc= imageProvider.generated_5712373893139499285(elem);
55 return desc;
56 }
57
58 /*
59 * @see Action#run()
60 */
61 @Override
62 public void run() {
63 fViewPart.gotoHistoryEntry(fElements);
64 }
65
66 /**
67 * Fetches the label for the java element.
68 *
69 * @param element the java element
70 * @return the label for the java element
71 * @since 3.7
72 */
73 static StyledString getSingleElementLabel(IJavaElement element) {
74 return JavaElementLabels.getStyledElementLabel(element, JavaElementLabels.ALL_POST_QUALIFIED | JavaElementLabels.COLORIZE | JavaElementLabels.P_COMPRESSED);
75 }
76
77 /**
78 * Fetches the label for all the java elements.
79 *
80 * @param elements the java elements
81 * @return the label for all the java elements
82 * @since 3.7
83 */
84 static String getElementLabel(IJavaElement[] elements) {
85 switch (elements.length) {
86 case 0:
87 Assert.isTrue(false);
88 return null;
89
90 case 1:
91 return Messages.format(TypeHierarchyMessages.HistoryAction_inputElements_1,
92 new String[] { getShortLabel(elements[0]) });
93 case 2:
94 return Messages.format(TypeHierarchyMessages.HistoryAction_inputElements_2,
95 new String[] { getShortLabel(elements[0]), getShortLabel(elements[1]) });
96 default:
97 return Messages.format(TypeHierarchyMessages.HistoryAction_inputElements_more,
98 new String[] { getShortLabel(elements[0]), getShortLabel(elements[1]), getShortLabel(elements[2]) });
99 }
100 }
101
102 /**
103 * Fetches the short label for the java element.
104 *
105 * @param element the java element
106 * @return the short label for the java element
107 * @since 3.7
108 */
109 static String getShortLabel(IJavaElement element) {
110 return JavaElementLabels.getElementLabel(element, JavaElementLabels.ALL_DEFAULT | JavaElementLabels.ALL_POST_QUALIFIED | JavaElementLabels.P_COMPRESSED);
111 }
112
113}