/*
* Copyright (c) 2012 Sam Harwell, Tunnel Vision Laboratories LLC
* All rights reserved.
*
* The source code of this document is proprietary work, and is not licensed for
* distribution. For information about licensing, contact Sam Harwell at:
* sam@tunnelvisionlabs.com
*/
package org.tvl.goworks.editor.go;
import java.io.IOException;
import org.netbeans.core.spi.multiview.MultiViewElement;
import org.netbeans.core.spi.multiview.text.MultiViewEditorElement;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.MIMEResolver;
import org.openide.loaders.DataObjectExistsException;
import org.openide.loaders.MultiDataObject;
import org.openide.loaders.MultiFileLoader;
import org.openide.nodes.Node;
import org.openide.util.Lookup;
import org.openide.util.NbBundle;
import org.openide.windows.TopComponent;
import org.tvl.goworks.editor.GoEditorKit;
@NbBundle.Messages({
"GoResolver=Go Files",
"CTL_SourceTabCaption=&Source"
})
@MIMEResolver.ExtensionRegistration(
position=100,
displayName="#GoResolver",
extension="go",
mimeType=GoEditorKit.GO_MIME_TYPE,
showInFileChooser="#GoResolver")
public class GoDataObject extends MultiDataObject {
public GoDataObject(FileObject pf, MultiFileLoader loader) throws DataObjectExistsException, IOException {
super(pf, loader);
registerEditor(GoEditorKit.GO_MIME_TYPE, true);
}
@Override
protected Node createNodeDelegate() {
return GoDataSupport.createGoNode(getPrimaryFile());
}
@Override
protected int associateLookup() {
return 1;
}
@MultiViewElement.Registration(
displayName="#CTL_SourceTabCaption",
iconBase="",
persistenceType=TopComponent.PERSISTENCE_ONLY_OPENED,
preferredID="",
mimeType=GoEditorKit.GO_MIME_TYPE,
position=2000)
public static MultiViewEditorElement createMultiViewEditorElement(Lookup context) {
return new MultiViewEditorElement(context);
}
}