/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.ui.editor; import org.eclipse.core.runtime.IPath; import org.eclipse.ui.IPathEditorInput; import org.eclipse.ui.editors.text.ILocationProvider; import org.jboss.tools.common.model.XModelObject; public class ModelObjectLocationEditorInput extends ModelObjectEditorInput implements ILocationProvider, IPathEditorInput { IPath path; public ModelObjectLocationEditorInput(XModelObject object, IPath path) { super(object); this.path = path; } public IPath getPath(Object element) { return path; } protected boolean isEditable() { if(path != null) { java.io.File f = path.toFile(); return f == null || !f.isFile() || f.canWrite(); } return true; } public Object getAdapter(Class adapter) { if(adapter == ILocationProvider.class) { return this; } return super.getAdapter(adapter); } public boolean equals(Object o) { if(super.equals(o)) return true; if(o instanceof IPathEditorInput) { if(!((IPathEditorInput)o).exists()) { return false; } IPath p = ((IPathEditorInput)o).getPath(); return path != null && path.equals(p); } return false; } public IPath getPath() { return path; } }