| /******************************************************************************* |
| * Copyright (c) 2005, 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.internal.intro.universal; |
| |
| import java.io.PrintWriter; |
| |
| public class ExtensionData extends BaseData { |
| |
| public static final int HIDDEN = -1; |
| |
| public static final int CALLOUT = 0; |
| |
| public static final int LOW = 1; |
| |
| public static final int MEDIUM = 2; |
| |
| public static final int HIGH = 3; |
| |
| public static final int NEW = 4; |
| |
| private String name; |
| |
| private int fImportance = LOW; |
| |
| private boolean implicit = false; |
| |
| public static final String[] IMPORTANCE_TABLE = { |
| IUniversalIntroConstants.CALLOUT, IUniversalIntroConstants.LOW, |
| IUniversalIntroConstants.MEDIUM, IUniversalIntroConstants.HIGH, |
| IUniversalIntroConstants.NEW }; |
| |
| public static final String[] IMPORTANCE_STYLE_TABLE = { |
| IUniversalIntroConstants.STYLE_CALLOUT, |
| IUniversalIntroConstants.STYLE_LOW, |
| IUniversalIntroConstants.STYLE_MEDIUM, |
| IUniversalIntroConstants.STYLE_HIGH, |
| IUniversalIntroConstants.STYLE_NEW }; |
| |
| public static final String[] IMPORTANCE_NAME_TABLE = { |
| org.eclipse.ui.internal.intro.universal.Messages.ExtensionData_callout, |
| Messages.ExtensionData_low, Messages.ExtensionData_medium, |
| Messages.ExtensionData_high, Messages.ExtensionData_new }; |
| |
| public ExtensionData(String id, String name) { |
| this(id, name, IUniversalIntroConstants.LOW, false); |
| } |
| |
| public ExtensionData(String id, String name, int importance) { |
| this.id = id; |
| this.name = name; |
| this.fImportance = importance; |
| this.implicit = false; |
| } |
| |
| public boolean isImplicit() { |
| return implicit; |
| } |
| |
| public ExtensionData(String id, String name, String importance, |
| boolean implicit) { |
| this.id = id; |
| this.name = name; |
| this.implicit = implicit; |
| if (importance != null) { |
| if (importance.equals(IUniversalIntroConstants.HIGH)) |
| fImportance = HIGH; |
| else if (importance.equals(IUniversalIntroConstants.MEDIUM)) |
| fImportance = MEDIUM; |
| else if (importance.equals(IUniversalIntroConstants.LOW)) |
| fImportance = LOW; |
| else if (importance.equals(IUniversalIntroConstants.CALLOUT)) |
| fImportance = CALLOUT; |
| else if (importance.equals(IUniversalIntroConstants.NEW)) |
| fImportance = NEW; |
| else if (importance.equals(IUniversalIntroConstants.HIDDEN)) |
| fImportance = HIDDEN; |
| } |
| } |
| |
| public String getName() { |
| return name; |
| } |
| |
| public void setName(String name) { |
| this.name = name; |
| } |
| |
| public int getImportance() { |
| return fImportance; |
| } |
| |
| public void setImportance(int newValue) { |
| fImportance = newValue; |
| } |
| |
| public boolean isHidden() { |
| return fImportance == HIDDEN; |
| } |
| |
| String getImportanceAttributeValue() { |
| return IMPORTANCE_TABLE[fImportance]; |
| } |
| |
| @Override |
| public String toString() { |
| return name != null ? name : id; |
| } |
| |
| @Override |
| public void write(PrintWriter writer, String indent) { |
| writer.print(indent); |
| writer.print("<extension id=\"" + id + "\""); //$NON-NLS-1$ //$NON-NLS-2$ |
| if (!isHidden()) |
| writer |
| .println(" importance=\"" + getImportanceAttributeValue() + "\"/>"); //$NON-NLS-1$ //$NON-NLS-2$ |
| else |
| writer.println("/>"); //$NON-NLS-1$ |
| } |
| } |