nesceditor.java
来自「plugin for eclipse」· Java 代码 · 共 151 行
JAVA
151 行
package isis.tinydt.editors.nesceditor;
import isis.anp.nesc.common.NesCObjectTreeBuilderContext;
import isis.anp.nesc.ot.NesCConfigurationFile;
import isis.anp.nesc.ot.NesCFile;
import isis.tinydt.TinydtProject;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.swt.SWT;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.ide.IDE;
import org.eclipse.ui.part.MultiPageEditorPart;
public class NesCEditor extends MultiPageEditorPart
{
private NesCTextEditor textEditor = null;
private ConfigurationGraph configGraph = null;
private boolean configVisible = false;
public NesCEditor()
{
super();
}
public void init(IEditorSite site, IEditorInput input) throws PartInitException
{
super.init(site, input);
}
public NesCTextEditor getTextEditor()
{
return textEditor;
}
public ConfigurationGraph getConfigGraph()
{
return configGraph;
}
public void gotoMarker(IMarker marker)
{
setActivePage(0);
//textEditor.gotoMarker(marker);
IDE.gotoMarker(getEditor(0), marker);
}
public boolean isConfigVisible()
{
return configVisible;
}
public void showConfiguration(boolean configVisible)
{
if(this.configVisible != configVisible)
{
this.configVisible = configVisible;
if(configVisible)
{
int index = addPage(configGraph);
setPageText(index, "Configuration Graph");
}
else
{
if( getPageCount() > 1)
removePage(1);
}
}
}
public void updateConfigStatus()
{
IFileEditorInput f = (IFileEditorInput)getEditorInput();
TinydtProject p = TinydtProject.getTinydtProject(f.getFile().getProject());
NesCObjectTreeBuilderContext tree = p.getObjectTreeCtx();
if( tree != null)
{
try
{
NesCFile nf = tree.getObjectTree(f.getFile().getLocation().lastSegment().toString());
if( nf instanceof NesCConfigurationFile )
{
configGraph.setConfigFile( (NesCConfigurationFile)nf );
showConfiguration(true);
}
else
{
configGraph.setConfigFile( null );
showConfiguration(false);
}
}
catch(Exception e)
{
showConfiguration(false);
}
}
else
{
showConfiguration(false);
}
}
public boolean isSaveAsAllowed()
{
return true;
}
public void doSaveAs()
{
IEditorPart editor = getEditor(0);
editor.doSaveAs();
setPageText(0, editor.getTitle());
setInput(editor.getEditorInput());
}
public void doSave(IProgressMonitor monitor)
{
getEditor(0).doSave(monitor);
}
protected void createPages()
{
try
{
configGraph = new ConfigurationGraph(getContainer(), SWT.NONE);
textEditor = new NesCTextEditor();
int index = addPage(textEditor, getEditorInput());
setPageText(index, "Source");
setPartName(getEditorInput().getName());
updateConfigStatus();
}
catch(PartInitException e)
{
e.printStackTrace();
}
}
public void dispose()
{
super.dispose();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?