GVKun编程网logo

如何刷新Eclipse View插件(怎么刷新eclipse)

11

如果您想了解如何刷新EclipseView插件和怎么刷新eclipse的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何刷新EclipseView插件的各个方面,并为您解答怎么刷新eclipse

如果您想了解如何刷新Eclipse View插件怎么刷新eclipse的知识,那么本篇文章将是您的不二之选。我们将深入剖析如何刷新Eclipse View插件的各个方面,并为您解答怎么刷新eclipse的疑在这篇文章中,我们将为您介绍如何刷新Eclipse View插件的相关知识,同时也会详细的解释怎么刷新eclipse的运用方法,并给出实际的案例分析,希望能帮助到您!

本文目录一览:

如何刷新Eclipse View插件(怎么刷新eclipse)

如何刷新Eclipse View插件(怎么刷新eclipse)

我基于eclipse插件视图教程创建了一个简单的视图。我添加了一些功能,使我的插件可以侦听调试器上的更改。我的问题是,每次调试器发生问题时,我都希望刷新视图并使用新信息进行更新。这是我所尝试的/正在尝试的:

    public void createPartControl(Composite parent) {        listener = new DebugContextListener(this);        DebugUITools.getDebugContextManager().addDebugContextListener(listener);        // Check if there is an already started debug context        IAdaptable dc = DebugUITools.getDebugContext();        if (dc != null) {                dataCollection.add(new ProxyScope("hi")); // manually injecting data                 Object o = dc.getAdapter(IStackFrame.class);                if (o instanceof IStackFrame)                        setStackFrame((IStackFrame) o);                viewer.refresh(); // this doesn''t work        }        viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);        // Set column lines visible, and create two columns        Tree tree = viewer.getTree();        tree.setHeaderVisible(true);        tree.setLinesVisible(true);        TreeColumn column1 = new TreeColumn(tree, SWT.LEFT);        column1.setText("Name");        column1.setWidth(400);        TreeColumn column2 = new TreeColumn(tree, SWT.LEFT);        column2.setText("Value");        column2.setWidth(200);        drillDownAdapter = new DrillDownAdapter(viewer);        viewer.setContentProvider(new VariableViewContentProvider());        viewer.setLabelProvider(new VariableViewLabelProvider());        viewer.setSorter(new ViewerSorter());        viewer.setInput(getViewSite());....}

因此,基本上,我将所有这些侦听侦听逻辑放在顶部,该侦听逻辑发生在if语句内部。我知道我的程序可以进入那里。每次发生重大变化时,我都想刷新视图,并且尝试尝试执行viewer.refresh,但该方法不起作用。我的视图显示的信息基于dataCollection对象,因此与dataCollection.add
…对应的行就是我只是手动添加数据,就像调试器做了什么一样。如果我将该行放在if语句之外,那么我的视图就可以工作(我猜这只是我第一次启动该插件时视图的原始结构),但是当我将它放在if语句中时,它就行不通,这表示我的观点永不更新。

感谢您的任何帮助。

答案1

小编典典

createPartControls是视图生命周期的时间,将在其中创建其包含的小部件(当视图最初可见时)。该代码在视图生命周期中仅执行一次,因此您不能在此处直接添加任何内容来刷新视图。

Eclipse部件通常会更新其内容,以响应工作台内部更改的选择(例如,用户可能在调试视图中单击另一个堆栈框架)。我不确定这是否已经完全满足您的需求,但这是一个很好的开始,并且在Eclipse
FAQ中进行了很好的描述。

eclipse installer 安装的新版本 eclipse 导入旧版本 eclipse 插件

eclipse installer 安装的新版本 eclipse 导入旧版本 eclipse 插件

打开旧版本eclipse,选择File -> Export... -> Install -> Installed Software Items to File,点击Next

点击Select All选中所有插件,点击Browse...选择一个路径,点击Finish导出.p2f文件

打开新下载的eclipse,选择File -> import... -> Install -> Install Software Items from File,点击Next

 

点击Browse...选择刚才导出的.p2f文件,点击Next

导入完成后,点击Next

选择I accept the terms of the license agreements,点击Finish安装插件

安装完成后弹出如下对话框,选择Install anyway

接着弹出如下对话框,选择Select All,然后点击Accept selected

安装完成后重启eclipse

eclipse除了插件之外的其余配置都是跟着workspace走,启动新eclipse后选择旧版本的workspace路径即可

 

Eclipse 下的 Subclipse 插件如何更换 SVN 账号

Eclipse 下的 Subclipse 插件如何更换 SVN 账号

之前电脑上用的 Eclipse 已经使用 Subclipse 插件从服务器上 checkout 项目的代码并保存了用户名口令。现在这台机器要给其他同事使用,需要更换 SVN 的账号密码,废弃了 SVN Location 重建后还是一样用的原来老的用户名和口令。

如何清除已经记下的用户名口令呢?

Eclipse 插件开发 - view to view drag drop

Eclipse 插件开发 - view to view drag drop

定义 Drop:

package public_project.view.dnd;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerDropAdapter;
import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.TransferData;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.TreeItem;

import public_project.view.model.descriptors.ProjectDetail;
import public_project.view.model.descriptors.ProjectGroup;

public class ViewDropListener extends ViewerDropAdapter {
	
	private TreeViewer treeViewer;
	
	public ViewDropListener(Viewer viewer) {
		super(viewer);
		this.treeViewer = (TreeViewer) viewer;
	}
	@Override
	public void drop(DropTargetEvent event) {
		if (event.data == null) {
	          event.detail = DND.DROP_NONE;
	          return;
	        }
	        String [] strData = (String[]) event.data;
	        String text = (String) strData[0];
	        if (event.item == null) {
	         MessageDialog.openWarning(Display.getCurrent().getActiveShell(), "哈哈!!", "哈哈哈!!!!你想多了。!!!功能太鸡肋,不开放!!");
	        } else {
	          TreeItem item = (TreeItem) event.item;
	          Object objItem = item.getData();
	          if(objItem instanceof ProjectGroup){
	        	  ProjectGroup group = (ProjectGroup) objItem;
	        	  ProjectDetail [] details = group.getProjectDetail();
	        	  String addProjectName = text.substring(text.lastIndexOf("\\")+1);
//	        	  genJar(addProjectName);
//	        	  ftpUpload();
	        	  if(details != null && details.length >0){
	        		  //判断是否存在
	        		  for(ProjectDetail detail : details){
	        			  if(addProjectName.equals(detail.getProjectName())){
	    		        	  return;
	        			  }
	        		  }
	        		  ProjectDetail detail1 = new ProjectDetail();
		        	  detail1.setProjectName(addProjectName);
		        	  detail1.setProjectStatus("0");
		        	  group.addProjectDetail(detail1);
		        	  treeViewer.refresh();
	        	  }else{
	        		  ProjectDetail detail1 = new ProjectDetail();
		        	  detail1.setProjectName(addProjectName);
		        	  detail1.setProjectStatus("0");
		        	  group.addProjectDetail(detail1);
		        	  treeViewer.refresh();
	        	  }
	          }
	        }
	      
		
		super.drop(event);
	}

	@Override
	public boolean performDrop(Object data) {
		
		return false;
	}

	@Override
	public boolean validateDrop(Object target, int operation,
			TransferData transferType) {
		return true;
	}

}
定义 Drag:

package public_project.view.dnd;

import org.eclipse.swt.dnd.DragSourceEvent;
import org.eclipse.swt.dnd.DragSourceListener;

public class ViewDragListener implements DragSourceListener{

	@Override
	public void dragStart(DragSourceEvent event) {
		System.out.println();
	}

	@Override
	public void dragSetData(DragSourceEvent event) {
		System.out.println();
	}

	@Override
	public void dragFinished(DragSourceEvent event) {
		System.out.println();
	}

}
调用:

int operations = DND.DROP_COPY | DND.DROP_MOVE;
	    Transfer[] transferTypes = new Transfer[]{FileTransfer.getInstance()};
		treeViewer.addDropSupport(operations, transferTypes, new ViewDropListener(treeViewer));
		treeViewer.addDragSupport(operations, transferTypes, new ViewDragListener());

Eclipse 视图(View)

Eclipse 视图(View)

Eclipse 视图

关于视图

Eclipse视图允许用户以图表形式更直观的查看项目的元数据。 例如,项目导航视图中显示的文件夹和文件图形表示在另外一个编辑窗口中相关的项目和属性视图。

Eclipse 透视图(perspective) 可以显示任何的视图和编辑窗口。

所有的编辑器实例出现在一个编辑器区域内,可以通过文件夹视图查看。

一个工作台窗口可以显示任意数量的文件夹视图。每个文件夹视图可以显示一个或多个视图。

组织视图

下图显示了文件夹视图的四个视图。

explore_view_1

下图在两个文件夹视图中显示四个视图。

explore_view_2

移除视图 views

视图从一个文件夹视图移动到另外一个文件夹视图只需要点击视图标题并推动视图工具区域到另外一个文件夹视图。

explore_views_moving

创建文件夹视图

文件夹视图可以通过移动视图标题栏到编辑去外或移动标题栏到另外一个文件夹视图来动态创建。 下图中如果你拖动了绿色线框内的标题栏意味着一个新的文件夹视图将被创建。

explore_views_creating_vf

移动拖动图标到窗口的底部,您可以创建一个横跨窗口整个宽度的视图文件夹。移动拖动图标到窗口的左边或右边,您可以创建一个横跨窗口的整个高度视图文件夹。

操作视图

你可以在 Window 菜单中点击 "Show View" 选项打开其他视图。

explore_views_new_view

点击 "Other" 菜单选项会弹出一个 "Show View" 对话框,对话框中你可以查找和激活视图。

explore_views_show_view

视图通过各个分类来组织。你可以通过搜索框快速查找视图。 然后打开视图并选择,点击 "OK" 按钮即可。

关于如何刷新Eclipse View插件怎么刷新eclipse的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于eclipse installer 安装的新版本 eclipse 导入旧版本 eclipse 插件、Eclipse 下的 Subclipse 插件如何更换 SVN 账号、Eclipse 插件开发 - view to view drag drop、Eclipse 视图(View)等相关内容,可以在本站寻找。

本文标签: