| /******************************************************************************* |
| * Copyright (c) 2002, 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.cheatsheets.data; |
| |
| import java.util.ArrayList; |
| import java.util.Iterator; |
| |
| public class Item extends Intro implements IExecutableItem, IPerformWhenItem, ISubItemItem { |
| private String title; |
| private boolean skip; |
| private boolean dialog; |
| private ArrayList itemExtensions; |
| |
| private AbstractExecutable executable; |
| private PerformWhen performWhen; |
| |
| private ArrayList subItems; |
| private String completionMessage; |
| |
| /** |
| * Constructor for Item. |
| */ |
| public Item() { |
| super(); |
| } |
| |
| public Item(String title, String description, String href, String contextId, boolean skip, boolean dialog) { |
| super(description, href, contextId); |
| this.title = title; |
| this.skip = skip; |
| this.dialog = dialog; |
| } |
| |
| /** |
| * Returns the title. |
| * @return String |
| */ |
| public String getTitle() { |
| return this.title; |
| } |
| |
| /** |
| * Returns whether this item is dynamic. An item is dynamic if it |
| * has performWhen condition, conditionalSubItems or repeatedSubItems. |
| * |
| * @return <code>true</code> if this item is dynamic, and |
| * <code>false</code> for normal items |
| */ |
| public boolean isDynamic() { |
| if( performWhen != null || hasDynamicSubItems()) { |
| return true; |
| } |
| |
| return false; |
| } |
| |
| /** |
| * Returns whether or not this item requires opening a dialog. |
| * @return whether the item requires opening a dialog |
| */ |
| public boolean isDialog() { |
| return this.dialog; |
| } |
| |
| /** |
| * Returns the skip. |
| * @return boolean |
| */ |
| public boolean isSkip() { |
| return this.skip; |
| } |
| |
| /** |
| * Sets whether or not this item requires opening a dialog. |
| * @param dialog whether the item requires opening a dialog |
| */ |
| public void setDialog(boolean dialog) { |
| this.dialog = dialog; |
| } |
| |
| /** |
| * @param skip The skip to set. |
| */ |
| public void setSkip(boolean skip) { |
| this.skip = skip; |
| } |
| |
| /** |
| * Sets the title. |
| * @param title The title to set |
| */ |
| public void setTitle(String title) { |
| this.title = title; |
| } |
| |
| /** |
| * Sets the item extensions for this item. |
| * @param exts the extensions to set |
| */ |
| public void setItemExtensions(ArrayList exts){ |
| this.itemExtensions = exts; |
| } |
| |
| /** |
| * Returns the item extensions, if any, for this item,. |
| * @return list of the extensions or <code>null</code> |
| */ |
| public ArrayList getItemExtensions(){ |
| return itemExtensions; |
| } |
| |
| /** |
| * @return Returns the performWhen. |
| */ |
| @Override |
| public PerformWhen getPerformWhen() { |
| return performWhen; |
| } |
| |
| /** |
| * @param performWhen The performWhen to set. |
| */ |
| @Override |
| public void setPerformWhen(PerformWhen performWhen) { |
| this.performWhen = performWhen; |
| } |
| |
| /** |
| * @param subItem the SubItem to add. |
| */ |
| @Override |
| public void addSubItem(AbstractSubItem subItem) { |
| if(subItems == null) { |
| subItems = new ArrayList(); |
| } |
| subItems.add(subItem); |
| } |
| |
| /** |
| * @return Returns the subItems. |
| */ |
| @Override |
| public ArrayList getSubItems() { |
| return subItems; |
| } |
| |
| private boolean hasDynamicSubItems() { |
| if( subItems != null) { |
| for (Iterator iter = subItems.iterator(); iter.hasNext();) { |
| AbstractSubItem subItem = (AbstractSubItem)iter.next(); |
| if( subItem instanceof RepeatedSubItem || |
| subItem instanceof ConditionalSubItem || |
| subItem instanceof SubItem && ((SubItem)subItem).getPerformWhen() != null ) { |
| return true; |
| } |
| } |
| } |
| |
| return false; |
| } |
| |
| @Override |
| public AbstractExecutable getExecutable() { |
| return executable; |
| } |
| |
| @Override |
| public void setExecutable(AbstractExecutable executable) { |
| this.executable = executable; |
| } |
| |
| public void setCompletionMessage(String message) { |
| this.completionMessage = message; |
| } |
| |
| public String getCompletionMessage() { |
| return completionMessage; |
| } |
| } |