// Path: org.spotter.eclipse.ui/src/org/spotter/eclipse/ui/handlers/OpenHandler.java
// public class OpenHandler extends AbstractHandler {
// 
// 	/**
// 	 * The id of the open command.
// 	 */
// 	public static final String OPEN_COMMAND_ID = "org.spotter.eclipse.ui.commands.open";
// 
// 	@Override
// 	public Object execute(ExecutionEvent event) throws ExecutionException {
// 		Iterator<?> iter = SpotterUtils.getActiveWindowStructuredSelectionIterator();
// 		if (iter == null) {
// 			return null;
// 		}
// 
// 		while (iter.hasNext()) {
// 			SpotterUtils.openElement(iter.next());
// 		}
// 
// 		return null;
// 	}
// 
// 	/**
// 	 * Returns <code>true</code> if only elements are selected that are
// 	 * openable.
// 	 * 
// 	 * @return <code>true</code> if only elements are selected that are openable
// 	 */
// 	@Override
// 	public boolean isEnabled() {
// 		Iterator<?> iter = SpotterUtils.getActiveWindowStructuredSelectionIterator();
// 		if (iter == null) {
// 			return false;
// 		}
// 
// 		while (iter.hasNext()) {
// 			Object openable = SpotterUtils.toConcreteHandler(iter.next(), OPEN_COMMAND_ID);
// 			if (!(openable instanceof IOpenable)) {
// 				return false;
// 			}
// 		}
// 
// 		return true;
// 	}
// 
// }


import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.spotter.eclipse.ui.Activator;
import org.spotter.eclipse.ui.editors.AbstractSpotterEditor;
import org.spotter.eclipse.ui.editors.HierarchyEditor;
import org.spotter.eclipse.ui.editors.HierarchyEditorInput;
import org.spotter.eclipse.ui.handlers.OpenHandler;
import org.spotter.eclipse.ui.menu.IOpenable;
import org.spotter.shared.configuration.FileManager;
/**
 * Copyright 2014 SAP AG
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.spotter.eclipse.ui.navigator;


/**
 * An element that represents the hierarchy node.
 * 
 * @author Denis Knoepfle
 * 
 */
public class SpotterProjectHierarchy extends AbstractProjectElement {

	public static final String IMAGE_PATH = "icons/hierarchy.gif"; //$NON-NLS-1$

	private static final String ELEMENT_NAME = "Hierarchy";
	private static final String OPEN_ID = HierarchyEditor.ID;

	private ISpotterProjectElement parent;

	/**
	 * Create the hierarchy node.
	 * 
	 * @param parent
	 *            The parent of this node
	 */
	public SpotterProjectHierarchy(ISpotterProjectElement parent) {
		super(IMAGE_PATH);
		this.parent = parent;
// Path: org.spotter.eclipse.ui/src/org/spotter/eclipse/ui/handlers/OpenHandler.java
// public class OpenHandler extends AbstractHandler {
// 
// 	/**
// 	 * The id of the open command.
// 	 */
// 	public static final String OPEN_COMMAND_ID = "org.spotter.eclipse.ui.commands.open";
// 
// 	@Override
// 	public Object execute(ExecutionEvent event) throws ExecutionException {
// 		Iterator<?> iter = SpotterUtils.getActiveWindowStructuredSelectionIterator();
// 		if (iter == null) {
// 			return null;
// 		}
// 
// 		while (iter.hasNext()) {
// 			SpotterUtils.openElement(iter.next());
// 		}
// 
// 		return null;
// 	}
// 
// 	/**
// 	 * Returns <code>true</code> if only elements are selected that are
// 	 * openable.
// 	 * 
// 	 * @return <code>true</code> if only elements are selected that are openable
// 	 */
// 	@Override
// 	public boolean isEnabled() {
// 		Iterator<?> iter = SpotterUtils.getActiveWindowStructuredSelectionIterator();
// 		if (iter == null) {
// 			return false;
// 		}
// 
// 		while (iter.hasNext()) {
// 			Object openable = SpotterUtils.toConcreteHandler(iter.next(), OPEN_COMMAND_ID);
// 			if (!(openable instanceof IOpenable)) {
// 				return false;
// 			}
// 		}
// 
// 		return true;
// 	}
// 
// }


// Path: org.spotter.eclipse.ui/src/org/spotter/eclipse/ui/navigator/SpotterProjectHierarchy.java
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.spotter.eclipse.ui.Activator;
import org.spotter.eclipse.ui.editors.AbstractSpotterEditor;
import org.spotter.eclipse.ui.editors.HierarchyEditor;
import org.spotter.eclipse.ui.editors.HierarchyEditorInput;
import org.spotter.eclipse.ui.handlers.OpenHandler;
import org.spotter.eclipse.ui.menu.IOpenable;
import org.spotter.shared.configuration.FileManager;

/**
 * Copyright 2014 SAP AG
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.spotter.eclipse.ui.navigator;


/**
 * An element that represents the hierarchy node.
 * 
 * @author Denis Knoepfle
 * 
 */
public class SpotterProjectHierarchy extends AbstractProjectElement {

	public static final String IMAGE_PATH = "icons/hierarchy.gif"; //$NON-NLS-1$

	private static final String ELEMENT_NAME = "Hierarchy";
	private static final String OPEN_ID = HierarchyEditor.ID;

	private ISpotterProjectElement parent;

	/**
	 * Create the hierarchy node.
	 * 
	 * @param parent
	 *            The parent of this node
	 */
	public SpotterProjectHierarchy(ISpotterProjectElement parent) {
		super(IMAGE_PATH);
		this.parent = parent;
		addHandler(OpenHandler.OPEN_COMMAND_ID, new IOpenable() {