Java源码示例:org.eclipse.ui.IPartService

示例1
public AbstractPDFViewerRunnable(ProducePDFHandler handler, IWorkbenchPartSite site, IResource aSpecFile) {
	Assert.isNotNull(handler);
	Assert.isNotNull(site);
	Assert.isNotNull(aSpecFile);
	this.handler = handler;
	this.specFile = aSpecFile;
	
	final boolean autoRegenerate = TLA2TeXActivator.getDefault().getPreferenceStore()
			.getBoolean(ITLA2TeXPreferenceConstants.AUTO_REGENERATE);
	if (autoRegenerate) {
		// Subscribe to the event bus with which the TLA Editor save events are
		// distributed. In other words, every time the user saves a spec, we
		// receive an event and provided the spec corresponds to this PDF, we
		// regenerate it.
		// Don't subscribe in EmbeddedPDFViewerRunnable#though, because it is run
		// repeatedly and thus would cause us to subscribe multiple times.
		final IEventBroker eventService = site.getService(IEventBroker.class);
		Assert.isTrue(eventService.subscribe(TLAEditor.SAVE_EVENT, this));
		
		// Register for part close events to deregister the event handler
		// subscribed to the event bus. There is no point in regenerating
		// the PDF if no PDFEditor is open anymore.
		final IPartService partService = site.getService(IPartService.class);
		partService.addPartListener(this);
	}
}
 
示例2
public void close() {
	if (!popup.isDisposed()) {
		// Composite c = view.getComponent();
		if (referenceComposite != null && !referenceComposite.isDisposed()) {
			referenceComposite.removeControlListener(listener);
		}
		final IPartService ps = ((IWorkbenchPart) view).getSite().getService(IPartService.class);
		if (ps != null) {
			ps.removePartListener(pl2);
		}
		if (!popup.getParent().isDisposed()) {
			popup.getParent().removeControlListener(listener);
			popup.getParent().getShell().removeShellListener(listener);
		}
		timer.cancel();
		popup.dispose();
	}
}
 
示例3
protected void hookWindow(IWorkbenchWindow window) {
	if (window == null) {
		return;
	}
	window.addPageListener(this);
	window.addPerspectiveListener(this);
	IPartService partService = (IPartService) window.getService(IPartService.class);
	partService.addPartListener(this);
	windowChanged(window);
}
 
示例4
protected E getActiveEditor() {
  IWorkbenchWindow wndo = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
  if (null == wndo) {
    return null;
  }

  IPartService srvc = wndo.getPartService();
  return getAcceptableEditor(srvc.getActivePart());
}
 
示例5
private void assignBoxPartListener() {
	final IPartService partService = getSite().getWorkbenchWindow().getPartService();
	if (partService == null) { return; }
	if (partListeners == null) {
		partListeners = new HashMap<>();
	}
	final IPartListener2 oldListener = partListeners.get(partService);
	if (oldListener == null) {
		final IPartListener2 listener = new BoxDecoratorPartListener();
		partService.addPartListener(listener);
		partListeners.put(partService, listener);
	}
}
 
示例6
public DisplayOverlay(final LayeredDisplayView view, final Composite c,
		final IOverlayProvider<OverlayInfo> provider) {
	this.createExtraInfo = provider != null;
	this.view = view;
	final IPartService ps = ((IWorkbenchPart) view).getSite().getService(IPartService.class);
	ps.addPartListener(pl2);
	referenceComposite = c;
	// parentShell = c.getShell();
	popup = new Shell(c.getShell(), SWT.NO_TRIM | SWT.NO_FOCUS);
	popup.setAlpha(140);
	final FillLayout layout = new FillLayout();
	layout.type = SWT.VERTICAL;
	layout.spacing = 10;
	popup.setLayout(layout);
	popup.setBackground(IGamaColors.BLACK.color());
	createPopupControl();
	popup.setAlpha(140);
	popup.layout();
	c.getShell().addShellListener(listener);
	// parentShell.addControlListener(listener);
	c.addControlListener(listener);
	if (provider != null) {
		provider.setTarget(new ThreadedOverlayUpdater(this), view.getDisplaySurface());
	}
	// if (GamaPreferences.Displays.CORE_SHOW_FPS.getValue()) {
	timer.schedule(new FPSTask(), 0, 1000);
	// }
}
 
示例7
public void windowClosed(IWorkbenchWindow window)
{
	IPartService partService = window.getPartService();
	if (partService != null)
	{
		partService.removePartListener(fPartListener);
	}
	window.removePerspectiveListener(fPerspectiveListener);
}
 
示例8
public void windowOpened(IWorkbenchWindow window)
{
	IPartService partService = window.getPartService();
	if (partService != null)
	{
		partService.addPartListener(fPartListener);
	}
	window.addPerspectiveListener(fPerspectiveListener);
}
 
示例9
private void addPartListener()
{
	try
	{
		IWorkbench workbench = PlatformUI.getWorkbench();
		if (workbench != null)
		{
			IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
			IPartService partService;
			for (IWorkbenchWindow window : windows)
			{
				partService = window.getPartService();
				if (partService != null)
				{
					partService.addPartListener(fPartListener);
				}
				window.addPerspectiveListener(fPerspectiveListener);
			}

			// Listen on any future windows
			PlatformUI.getWorkbench().addWindowListener(fWindowListener);
		}
	}
	catch (Exception e)
	{
		// ignore, may be running headless, like in tests
	}
}
 
示例10
private void removePartListener()
{
	IWorkbench workbench = null;
	try
	{
		workbench = PlatformUI.getWorkbench();
	}
	catch (Exception e)
	{
		// ignore, may be running headless, like in tests
	}
	if (workbench != null)
	{
		IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
		IPartService partService;
		for (IWorkbenchWindow window : windows)
		{
			partService = window.getPartService();
			if (partService != null)
			{
				partService.removePartListener(fPartListener);
			}
			window.removePerspectiveListener(fPerspectiveListener);
		}
		PlatformUI.getWorkbench().removeWindowListener(fWindowListener);
	}
}
 
示例11
private RetargetAction createSubmenuAction(IPartService partService, String actionID, String text, String actionDefinitionId) {
	RetargetAction action= new RetargetAction(actionID, text);
	action.setActionDefinitionId(actionDefinitionId);

	partService.addPartListener(action);
	IWorkbenchPart activePart = partService.getActivePart();
	if (activePart != null) {
		action.partActivated(activePart);
	}
	return action;
}
 
示例12
/**
 * {@inheritDoc}
 */
public void init(IWorkbenchWindow window) {
	if (fPartService != null) {
		fPartService.removePartListener(fPartListener);
		fPartService= null;
	}

	if (window != null) {
		IPartService partService= window.getPartService();
		if (partService != null) {
			fPartService= partService;
			partService.addPartListener(fPartListener);
		}
	}
}
 
示例13
public void initialize() {
	IWorkbenchWindow window = WorkbenchUtils.getActiveWorkbenchWindow();
	IPartService partService = window.getPartService();
	partService.addPartListener(new ViewPartListener());
}
 
示例14
/**
    * Initialize the editor
    */
   @Override
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
       // TLCUIActivator.getDefault().logDebug("entering ModelEditor#init(IEditorSite site, IEditorInput input)");
       super.init(site, input);

       // grab the input
	final FileEditorInput finput = getFileEditorInput();

	// the file might not exist anymore (e.g. manually removed by the user) 
	if ((finput == null) || !finput.exists()) {
		throw new PartInitException("Editor input does not exist: " + finput.getName());
	}
	
       model = TLCModelFactory.getBy(finput.getFile());
       
       int openTabsValue = 0;
       try {
		openTabsValue = model.getLaunchConfiguration().getAttribute(IModelConfigurationConstants.EDITOR_OPEN_TABS, 0);
       } catch (CoreException e) { }

       final boolean mustShowResultsPage
       			= model.isSnapshot()
       				|| parsePotentialAssociatedTLCRunToDetermineWhetherResultsPageMustBeShown();
	final IPreferenceStore ips = TLCUIActivator.getDefault().getPreferenceStore();
       if (openTabsValue == IModelConfigurationConstants.EDITOR_OPEN_TAB_NONE) {
		pagesToAdd = mustShowResultsPage
								? new BasicFormPage[] { new MainModelPage(this), new ResultPage(this) }
								: new BasicFormPage[] { new MainModelPage(this) };
       } else {
       	final ArrayList<BasicFormPage> editorPages = new ArrayList<>();
           
       	editorPages.add(new MainModelPage(this));
		if ((openTabsValue & IModelConfigurationConstants.EDITOR_OPEN_TAB_ADVANCED_MODEL) != 0) {
			editorPages.add(new AdvancedModelPage(this));
       	}
		if ((openTabsValue & IModelConfigurationConstants.EDITOR_OPEN_TAB_ADVANCED_TLC) != 0) {
			editorPages.add(new AdvancedTLCOptionsPage(this));
       	}
		if (mustShowResultsPage
						|| ((openTabsValue & IModelConfigurationConstants.EDITOR_OPEN_TAB_RESULTS) != 0)) {
			editorPages.add(new ResultPage(this));
        	if (ips.getBoolean(IModelEditorPreferenceConstants.I_MODEL_EDITOR_SHOW_ECE_AS_TAB)) {
        		editorPages.add(new EvaluateConstantExpressionPage(this));
        	}
        	
        	if (mustShowResultsPage) {
        		final int openTabState = getModel().getOpenTabsValue();
        		updateOpenTabsState(openTabState | IModelConfigurationConstants.EDITOR_OPEN_TAB_RESULTS);	        		
        	}
       	}

           pagesToAdd = editorPages.toArray(new BasicFormPage[editorPages.size()]);
       }
       
       ips.addPropertyChangeListener(preferenceChangeListener);
       
       
       // setContentDescription(path.toString());
       if (model.isSnapshot()) {
       	final String date = SIMPLE_DATE_FORMAT.format(model.getSnapshotTimeStamp());
           this.setPartName(model.getSnapshotFor().getName() + " (" + date + ")");
       } else {
       	this.setPartName(model.getName());
       }
       this.setTitleToolTip(model.getFile().getLocation().toOSString());

       // add a listener that will update the tlc error view when a model editor
       // is made visible
       IPartService service = (IPartService) getSite().getService(IPartService.class);
       service.addPartListener(ModelEditorPartListener.getDefault());

       /*
        * Install resource change listener on the workspace root to react on any changes in th current spec
        */
       ResourcesPlugin.getWorkspace().addResourceChangeListener(workspaceResourceChangeListener,
               IResourceChangeEvent.POST_BUILD);

       // update the spec object of the helper
       helper.resetSpecNames();

       // initial re-validate the pages, which are already loaded
       UIHelper.runUIAsync(validateRunable);
       // TLCUIActivator.getDefault().logDebug("leaving ModelEditor#init(IEditorSite site, IEditorInput input)");

       
       // Asynchronously register a PageChangedListener to now cause cyclic part init warnings
	UIHelper.runUIAsync(new Runnable() {
		public void run() {
			addPageChangedListener(pageChangedListener);
		}
	});
	
	model.add(modelStateListener);
}
 
示例15
private IWorkbenchPart getActivePart() {
	IWorkbenchWindow window = getSite().getWorkbenchWindow();
	IPartService service = window.getPartService();
	IWorkbenchPart part = service.getActivePart();
	return part;
}
 
示例16
private IWorkbenchPart getActivePart() {
	IWorkbenchWindow window= getSite().getWorkbenchWindow();
	IPartService service= window.getPartService();
	IWorkbenchPart part= service.getActivePart();
	return part;
}
 
示例17
/**
 * This operation overrides the ViewPart.createPartControl method to create
 * and draw the TreeViewer before registering it as a selection provider.
 * 
 * @param parent
 *            The Composite used to create the TreeViewer.
 */
@Override
public void createPartControl(Composite parent) {

	// Create a TabFolder to manage tabs
	tabFolder = new TabFolder(parent, SWT.NONE);

	// Create pages (TabItems) for text files and images
	TabItem textTab = new TabItem(tabFolder, SWT.NONE, 0);
	textTab.setText("Files");
	TabItem imageTab = new TabItem(tabFolder, SWT.NONE, 1);
	imageTab.setText("Images");
	TabItem plotTab = new TabItem(tabFolder, SWT.NONE, 2);
	plotTab.setText("Plots");

	// Create the tool bar and buttons for the view
	createActions();

	// Initialize the TreeViewer
	fileTreeViewer = new TreeViewer(tabFolder);
	imageTreeViewer = new TreeViewer(tabFolder);
	// Create content and label providers
	initializeTreeViewer(fileTreeViewer);
	initializeTreeViewer(imageTreeViewer);
	// Register the tree to the tabs
	textTab.setControl(fileTreeViewer.getControl());
	imageTab.setControl(imageTreeViewer.getControl());
	// Register this view as a SelectionProvider
	getSite().setSelectionProvider(fileTreeViewer);
	getSite().setSelectionProvider(imageTreeViewer);
	// Registered the view as a double click listener of the TreeViewer
	fileTreeViewer.addDoubleClickListener(this);
	imageTreeViewer.addDoubleClickListener(this);

	// Add a listener to catch tab selection changes.
	// NOTE: In Windows, this event is fired instantly, so this listener
	// needs to be declared after everything else is initialized!
	tabFolder.addListener(SWT.Selection, new Listener() {
		@Override
		public void handleEvent(Event event) {
			// If tabs are changed while playing, stop playing.
			if (playAction.isInPlayState()) {
				playAction.stop();
			}
			// Set the TreeViewer input to the selected tab
			setTreeContent(tabFolder.indexOf((TabItem) event.item));
		}
	});

	// Create the Table and table viewer for the Plot tab
	Table listTable = new Table(tabFolder, SWT.FLAT);
	DefaultEventTableViewer<VizResource> listTableViewer = new DefaultEventTableViewer<VizResource>(
			plotList, listTable, plotList);
	// Register the table control with the plot tab
	plotTab.setControl(listTable);

	// Check if there is currently an active ICEFormEditor. If so, update
	// the currently active editor and related UI pieces.
	IEditorPart activeEditor = PlatformUI.getWorkbench()
			.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
	if (activeEditor != null && activeEditor instanceof ICEFormEditor) {
		if (activeEditor != editor) {
			setActiveEditor((ICEFormEditor) activeEditor);
		}
	} else {
		// Get a list of all the currently open editors
		IWorkbenchPage workbenchPage = PlatformUI.getWorkbench()
				.getActiveWorkbenchWindow().getActivePage();
		IEditorReference[] editorRefs = workbenchPage.getEditorReferences();

		if (editorRefs != null && editorRefs.length > 0) {
			// Begin iterating through all the editors, looking for one
			// that's an ICEFormEditor
			for (IEditorReference e : editorRefs) {
				// If it's an ICEFormEditor, set it as the active editor
				if (e.getId().equals(ICEFormEditor.ID)) {
					setActiveEditor((ICEFormEditor) e.getEditor(false));
					break;
				}
			}
		}
	}

	// Register as a listener to the part service so that the view can
	// update when the active ICEFormEditor changes.
	IPartService partService = getSite().getWorkbenchWindow()
			.getPartService();
	partService.addPartListener(this);

	return;
}
 
示例18
/**
 * 
 * @see org.eclipse.ui.part.EditorPart#init(org.eclipse.ui.IEditorSite,
 *      org.eclipse.ui.IEditorInput)
 */
public void init(IEditorSite site, IEditorInput input) throws PartInitException {
	if (!(input instanceof BTEditorInput)) {
		throw new PartInitException("Illegal IEditorInput. Must be "
				+ BTEditorInput.class.getCanonicalName());
	}

	setSite(site);
	setInputWithNotify(input);
	BTEditorInput editorInput = (BTEditorInput) input;
	setPartName(input.getName());
	this.openGuardEditors = new Hashtable<BTNode, BTEditor>();

	/* Set the IPartListener that will handle close events. */
	IPartService partService = (IPartService) this.getSite().getService(IPartService.class);
	partService.addPartListener(new BTEditorPartListener());

	if (editorInput.isFromFile()) {
		/* If the tree comes from a file, load the file. */
		try {
			this.tree = BTXMLManager.load(editorInput.getTreeName());
			this.tree.addTreeModifiedListener(this);
			this.dirty = false;
		} catch (IOException e) {
			throw new PartInitException("There were errors while loading the tree: "
					+ e.getMessage(), e);
		}
	} else if (editorInput.isFromGuard()) {
		/*
		 * If the tree comes from a guard, we have to construct a new tree
		 * whose root is the guard.
		 */
		this.tree = new BT();
		this.tree.addTreeModifiedListener(this);

		BTEditor activeEditor = Utilities.getActiveBTEditor();
		this.guardTree = activeEditor.getBT();

		String[] pieces = editorInput.getTreeName().split(File.pathSeparator);
		this.guardNode = this.guardTree.findNode(new Identifier(pieces[1]));

		/*
		 * Important: the root node (type ROOT) of the guard's tree is not a
		 * normal ROOT, since it has no name. Therefore, we clone the
		 * original ROOT type and remove its ability to provide a name.
		 */
		ConceptualBTNode conceptualNoNameRoot = NodesLoader.getNode(
				NodeInternalType.ROOT.toString(), null).clone();
		conceptualNoNameRoot.setHasName(false);
		BTNode noNameRoot = this.tree.createNode(conceptualNoNameRoot);

		BTNode guard = this.guardNode.getGuard();

		if (guard != null) {
			/* If the node had a guard, then the editor is not dirty. */
			BTNode clonedGuard = guard.clone();
			clonedGuard.setParent(noNameRoot);
			noNameRoot.addChild(clonedGuard);
			this.dirty = false;
		} else {
			/* Otherwise, the editor is dirty. */
			this.dirty = true;
		}

		this.tree.setRoot(noNameRoot);

		this.setTitleImage(ApplicationIcons.getIcon(IconsPaths.GUARD));
	} else {
		/* Otherwise, create a new empty BT. */
		this.tree = new BT();
		this.tree.addTreeModifiedListener(this);
		tree.setRoot(tree.createNode(NodesLoader.getNode(NodeInternalType.ROOT.toString(), null)));
		this.dirty = true;
	}
}
 
示例19
public static IWorkbenchPart getActivePart(IWorkbenchPartSite site) {
	IWorkbenchWindow window = site.getWorkbenchWindow();
	IPartService service = window.getPartService();
	return service.getActivePart();
}