/*******************************************************************************
* 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.texteditors.propertyeditor;
import java.util.Properties;
import org.eclipse.core.resources.IResource;
import org.eclipse.jdt.internal.ui.JavaPlugin;
import org.eclipse.jdt.internal.ui.propertiesfileeditor.IPropertiesFilePartitions;
import org.eclipse.jdt.internal.ui.propertiesfileeditor.PropertiesFileEditor;
import org.eclipse.jdt.ui.text.JavaTextTools;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.DocumentEvent;
import org.eclipse.jface.text.IDocumentListener;
import org.eclipse.jface.text.source.ISourceViewer;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.editors.text.TextFileDocumentProvider;
import org.eclipse.ui.texteditor.IDocumentProvider;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.ui.editor.IModelObjectEditorInput;
import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDrop;
import org.jboss.tools.common.model.ui.texteditors.dnd.TextEditorDropProvider;
import org.jboss.tools.common.model.ui.views.palette.XModelPaletteInsertHelper;
/**
* @author Jeremy
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class PropertiesTextEditorStub extends PropertiesFileEditor implements IDocumentListener {
protected TextEditorDrop dnd = new TextEditorDrop();
public PropertiesTextEditorStub() {
dnd.setTextEditorDropProvider(new TextEditorDropProviderImpl());
}
public XModelObject getModelObject() {
if (getEditorInput() instanceof IModelObjectEditorInput) {
return ((IModelObjectEditorInput)getEditorInput()).getXModelObject();
}
return null;
}
class TextEditorDropProviderImpl implements TextEditorDropProvider {
public ISourceViewer getSourceViewer() {
return PropertiesTextEditorStub.this.getSourceViewer();
}
public XModelObject getModelObject() {
return PropertiesTextEditorStub.this.getModelObject();
}
public void insert(Properties p) {
XModelPaletteInsertHelper.getInstance().insertIntoEditor(getSourceViewer(), p);
}
}
public void save() {}
public void documentAboutToBeChanged(DocumentEvent event) {}
public void documentChanged(DocumentEvent event) {
}
IDocumentProvider provider = null;
public IDocumentProvider getDocumentProvider() {
if (provider == null) {
provider = new PDP();
setDocumentProvider(provider);
}
return provider;
}
class PDP extends TextFileDocumentProvider {
public boolean isSynchronized(Object element) {
if (element instanceof IFileEditorInput) {
IFileEditorInput input = (IFileEditorInput) element;
IResource resource = input.getFile();
return resource != null && resource.isSynchronized(IResource.DEPTH_ZERO);
// return false;
}
return super.isSynchronized(element);
}
}
protected void initializeEditor() {
super.initializeEditor();
IPreferenceStore store= JavaPlugin.getDefault().getCombinedPreferenceStore();
JavaTextTools textTools= JavaPlugin.getDefault().getJavaTextTools();
setSourceViewerConfiguration(new PropertiesSourceViewerConfiguration(textTools.getColorManager(), store, this, IPropertiesFilePartitions.PROPERTIES_FILE_PARTITIONING));
}
}