我目前正在开发一个Eclipse插件,它可以帮助我编码.基本上是一个String片段库.
在创建一个新的时,我很乐意给它一个Class of Class Class.MethodName.X的ID.
获取编辑器非常简单:
IWorkbenchPage page = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage();
IEditorPart activeEditor = page.getActiveEditor();
if(activeEditor.getClass().getName().endsWith("CompilationUnitEditor")){
// do something
}
Run Code Online (Sandbox Code Playgroud)
现在......有没有办法使用Eclipse jdt API来获取我的文本光标当前所在方法的名称?
编辑:好的.在安德鲁的帮助下,这就是我得到的:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart activeEditor = page.getActiveEditor();
if(activeEditor instanceof JavaEditor) {
ICompilationUnit root = (ICompilationUnit) EditorUtility.getEditorInputJavaElement(activeEditor, false);
try {
ITextSelection sel = (ITextSelection) ((JavaEditor) activeEditor)
.getSelectionProvider().getSelection();
int offset = sel.getOffset();
IJavaElement element = root.getElementAt(offset);
if(element.getElementType() == IJavaElement.METHOD){
return element.getElementName());
}
} catch (JavaModelException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
工作得很好.虽然使用受限制的类是一种肮脏的解决方案.
我正在尝试在RHEL6计算机上安装DB2 Enterprise Server.不幸的是,对于某些例程,它似乎需要32位版本的libpam.so.0.机器运行64位版本似乎安装了lib ...我认为它是64版本.有没有办法获取和安装DB2安装程序要使用的32位版本?
似乎每当我更新索引中的现有文档(删除/添加的相同行为)时,都无法使用TermQuery找到它.这是一个简短的片段:
iw = new IndexWriter(directory,config);
Document doc = new Document();
doc.add(new StringField("string", "a", Store.YES));
doc.add(new IntField("int", 1, Store.YES));
iw.addDocument(doc);
Query query = new TermQuery(new Term("string","a"));
Document[] hits = search(query);
doc = hits[0];
print(doc);
doc.removeField("int");
doc.add(new IntField("int", 2, Store.YES));
iw.updateDocument(new Term("string","a"), doc);
hits = search(query);
System.out.println(hits.length);
System.out.println("_________________");
for(Document hit : search(new MatchAllDocsQuery())){
print(hit);
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下控制台输出:
stored,indexed,tokenized,omitNorms,indexOptions=DOCS_ONLY<string:a>
stored<int:1>
________________
0
_________________
stored,indexed,tokenized,omitNorms,indexOptions=DOCS_ONLY<string:a>
stored<int:2>
________________
Run Code Online (Sandbox Code Playgroud)
似乎在更新之后,索引中的文档(而不是新文档)被MatchAllDocsQuery返回,但是由TermQuery找不到.
有关完整的示例代码,请访问http://pastebin.com/sP2Vav9v
此外,当StringField值包含特殊字符(例如file:/ F:/)时,这只会发生(第二次搜索不起作用).
我正在研究我的小型RCP应用程序,它需要一个自定义的透视切换器来控制用户可以访问的视图.所以我在这里,尝试添加一个带有几个按钮的工具栏来切换视角.
我认为控制这些东西的最好方法是在ApplicationActionBarAdvisor中添加第二个工具栏,它可以调用我的操作/命令来切换视角.
所以假设我在fillCoolBar方法中创建了第二个ToolBarContributionItem,它看起来像这样:
protected void fillCoolBar(ICoolBarManager coolBar) {
IToolBarManager toolbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
ToolBarContributionItem mainBar = new ToolBarContributionItem(toolbar, "main");
coolBar.add(mainBar);
toolbar.add(openViewAction);
toolbar.add(newConnectionAction);
//Custom perspective switcher bar
IToolBarManager perspectives = new ToolBarManager(SWT.FLAT | SWT.RIGHT);
ToolBarContributionItem perspectiveBar = new ToolBarContributionItem(perspectives, "perspectives");
coolBar.add(perspectiveBar);
}
Run Code Online (Sandbox Code Playgroud)
有什么想法我可以如何对齐工具栏,以便它在窗口的右侧?我很想把这个职位硬编码.
问候,迈克尔
我在这里几乎没有想法......对于其他一切,将背景颜色设置为Color.Transparent或设置TransparencyKey工作正常...
我有一个mp4视频,我需要将其作为我的表单的"背景".为此,我目前正在使用WMP控件.我的问题:我不能在它上面添加任何控件,因为它们总是呈现背景.哪个看起来像**视频...
有什么建议?
c# vb.net visual-studio-2010 windows-media-player axwindowsmediaplayer
我试图将我的Logging路由到两个不同的文件:一个用于INFO消息,另一个用于ERROR.LevelMatchFilter似乎是正确的方法.不幸的是,所有消息都记录在我的info.log中,而不仅仅是INFO消息.我做错了什么想法?
这是我的配置:
# Define the root logger with appender file
log4j.logger.com.my.class.ClassName=DEBUG, FILE, ERR, CA
# Define the info file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=info.log
log4j.appender.FILE.filter.a=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.FILE.filter.a.LevelToMatch=INFO
log4j.appender.FILE.filter.a.AcceptOnMatch=true
# Define the layout for info file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d %-5p %c - %m%n
# Define the error file appender
log4j.appender.ERR=org.apache.log4j.FileAppender
log4j.appender.ERR.File=error.log
log4j.appender.ERR.Threshold=ERROR
# Define the layout for error file appender
log4j.appender.ERR.layout=org.apache.log4j.PatternLayout
log4j.appender.ERR.layout.conversionPattern=%d %-5p %c - %m%n
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud) 在我的RCP应用程序中,TreeViewer
左侧有一个带有导航的视图,右侧有一个用于我的视图的文件夹.透视图如下所示:
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
layout.setFixed(false);
layout.addStandaloneView(NavigationView.ID, false, IPageLayout.LEFT, 0.7f, layout.getEditorArea());
right = layout.createFolder("right", IPageLayout.RIGHT, 0.3f, "com.my.app.views.browser.navigation");
layout.getViewLayout(WallpaperView.Id).setCloseable(false);//dummy view to keep the folder from closing
layout.getViewLayout(WallpaperView.Id).setMoveable(false);
right.addView(WallpaperView.Id);
//add some placeholders for the potential views
right.addPlaceholder(DefaultAdminView.ID+":*");
}
Run Code Online (Sandbox Code Playgroud)
我想根据用户在导航树中选择的内容打开不同的视图.认为这不会很难.我的导航树视图:
tree = new TreeViewer(composite);
tree.setContentProvider(new BrowserNavigationTreeContentProvider());
tree.setLabelProvider(new BrowserNavigationTreeLabelProvider());
tree.setInput(UserProfileAdvisor.getProject());
//register Mouselistener for doubleclick events
tree.addDoubleClickListener(new IDoubleClickListener(){
@Override
public void doubleClick(DoubleClickEvent event) {
TreeSelection ts = (TreeSelection) event.getSelection();
Object selectedItem = ts.getFirstElement();
String viewId = DefaultAdminView.ID;
//set viewId depending on …
Run Code Online (Sandbox Code Playgroud) 正如标题已经说明的那样......我想打开一个已经展开的Tree的ElementTreeSelectionDialog.有什么办法吗?
问候,迈克尔
java ×6
eclipse ×4
eclipse-rcp ×2
swt ×2
c# ×1
db2 ×1
eclipse-jdt ×1
jface ×1
linux ×1
log4j ×1
logging ×1
lucene ×1
properties ×1
redhat ×1
vb.net ×1