Java Code Examples for org.eclipse.swt.widgets.Control#isDisposed()

The following examples show how to use org.eclipse.swt.widgets.Control#isDisposed() . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
protected final void executeRunnables(final Collection<Runnable> runnables) {

		// now post all collected runnables
		Control ctrl= fViewer.getControl();
		if (ctrl != null && !ctrl.isDisposed()) {
			final boolean hasPendingUpdates;
			synchronized (this) {
				hasPendingUpdates= fPendingUpdates != null && !fPendingUpdates.isEmpty();
			}
			//Are we in the UIThread? If so spin it until we are done
			if (!hasPendingUpdates && ctrl.getDisplay().getThread() == Thread.currentThread() && !fViewer.isBusy()) {
				runUpdates(runnables);
			} else {
				synchronized (this) {
					if (fPendingUpdates == null) {
						fPendingUpdates= runnables;
					} else {
						fPendingUpdates.addAll(runnables);
					}
				}
				postAsyncUpdate(ctrl.getDisplay());
			}
		}
	}
 
Example 2
public void updateQuery( Control control )
{
	if ( textCollection.containsKey( control ) )
	{
		IQueryExpressionManager queryManager = textCollection.get( control );
		queryManager.updateQuery( ChartUIUtil.getText( control ) );

		adjustScaleData( queryManager.getQuery( ) );

		// control may be disposed when updating query
		if ( control.isDisposed( ) )
		{
			control = findText( queryManager.getQuery( ) );
		}

		// Bind color to this data definition
		if ( control != null )
		{
			updateControlBackground( control, queryManager.getQuery( )
					.getDefinition( ) );
		}
	}
}
 
Example 3
/**
 * 销毁除了“过滤器列表控件”之外的其它控件
 */
private void disposeChild() {
	for (Control ctl : this.getChildren()) {
		if (!"filterName".equals(ctl.getData()) && ctl != null && !ctl.isDisposed()) {
			ctl.dispose();
		}
	}
}
 
Example 4
public void resourceChanged(IResourceChangeEvent event) {
	if (fViewer.getInput() == null) {
		return;
	}
	IResourceDelta delta= event.getDelta();
	if (delta == null)
		return;
	IResourceDelta[] projDeltas = delta.getAffectedChildren(IResourceDelta.CHANGED);
	for (int i= 0; i < projDeltas.length; i++) {
		IResourceDelta pDelta= projDeltas[i];
		if ((pDelta.getFlags() & IResourceDelta.DESCRIPTION) != 0) {
			IProject project= (IProject) pDelta.getResource();
			if (needsRefiltering(project)) {
				final Control ctrl= fViewer.getControl();
				if (ctrl != null && !ctrl.isDisposed()) {
					// async is needed due to bug 33783
					ctrl.getDisplay().asyncExec(new Runnable() {
						public void run() {
							if (!ctrl.isDisposed())
								fViewer.refresh(false);
						}
					});
				}
				return; // one refresh is good enough
			}
		}
	}
}
 
Example 5
public void setInput(Object input) {
    final Control control = getControl();
    if (control == null || control.isDisposed()) {
        throw new IllegalStateException(
                "Need an underlying widget to be able to set the input." + //$NON-NLS-1$
                        "(Has the widget been disposed?)"); //$NON-NLS-1$
    }
    this.input = input;
    if (input instanceof IObservableList) {
        final IObservableList observableList = (IObservableList) input;
        observableList.removeListChangeListener(operationListlistener);
        observableList.addListChangeListener(operationListlistener);
    }

}
 
Example 6
Source Project: xds-ide   File: SwtUtils.java    License: Eclipse Public License 1.0 5 votes vote down vote up
public static Boolean setEnabled(Control control, boolean isEnabled) {
	if (control.isDisposed())
		return null;

	boolean isEnabledBefore = control.getEnabled();
	if (isEnabledBefore != isEnabled) {
		control.setEnabled(isEnabled);
	}
	return isEnabledBefore;
}
 
Example 7
/**
 * Process the resource delta.
 *
 * @param delta
 */
protected void processDelta(IResourceDelta delta) {
    Control ctrl = viewer.getControl();
    if (ctrl == null || ctrl.isDisposed()) {
        return;
    }

    final Collection<Runnable> runnables = new ArrayList<Runnable>();
    processDelta(delta, runnables);
    processRunnables(runnables);
}
 
Example 8
private void updateViewer(){
	Control control = viewer.getControl();
	if (control != null && !control.isDisposed()) {
		control.getDisplay().asyncExec(new Runnable() {
			@Override
			public void run(){
				if (!control.isDisposed() && control.isVisible()) {
					viewer.refresh(item, true);
				}
			}
		});
	}
}
 
Example 9
Source Project: nebula   File: PWWidget.java    License: Eclipse Public License 2.0 5 votes vote down vote up
/**
 * Enable or disable the widget, depending on the associated enabler
 */
public boolean enableOrDisable() {
	if (this.enabler == null) {
		return true;
	}

	final boolean enabled = this.enabler.isEnabled();
	for (final Control c : this.controls) {
		if (!c.isDisposed()) {
			c.setEnabled(enabled);
		}
	}
	return enabled;
}
 
Example 10
private static void createDropTarget(Composite composite,
		DropTargetListener dropTargetListener) {

	Transfer[] transferList = new Transfer[] {
		FixedHTMLTransfer.getInstance(),
		FixedURLTransfer.getInstance(),
		FileTransfer.getInstance(),
		TextTransfer.getInstance()
	};

	final DropTarget dropTarget = new DropTarget(composite, DND.DROP_DEFAULT
			| DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK | DND.DROP_TARGET_MOVE);
	dropTarget.setTransfer(transferList);
	dropTarget.addDropListener(dropTargetListener);
	// Note: DropTarget will dipose when the parent it's on diposes

	// On Windows, dropping on children moves up to parent
	// On OSX, each child needs it's own drop.
	if (Constants.isWindows) {
		return;
	}

	Control[] children = composite.getChildren();
	for (Control control : children) {
		if (control.isDisposed()) {
			continue;
		}
		if (control instanceof Composite) {
			createDropTarget((Composite) control, dropTargetListener);
		} else {
			DropTarget dropTarget2 = new DropTarget(control,
					DND.DROP_DEFAULT | DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK
							| DND.DROP_TARGET_MOVE);
			dropTarget2.setTransfer(transferList);
			dropTarget2.addDropListener(dropTargetListener);
		}
	}
}
 
Example 11
/**
 * Callback for the show legend action
 */
public void showLegend() {
    Control tgControl = getControl();
    if (tgControl == null || tgControl.isDisposed()) {
        return;
    }
    ITimeGraphLegendProvider legendProvider = fLegendProvider;
    if (legendProvider == null) {
        TimeGraphLegend.open(tgControl.getShell(), getTimeGraphProvider());
    } else {
        legendProvider.showLegend(tgControl.getShell(), getTimeGraphProvider());
    }
}
 
Example 12
private void updateViewer(){
	if (viewer != null) {
		Control control = viewer.getControl();
		if (control != null && !control.isDisposed()) {
			viewer.getControl().getDisplay().asyncExec(new Runnable() {
				@Override
				public void run(){
					if (!control.isDisposed() && control.isVisible()) {
						viewer.update(item, null);
					}
				}
			});
		}
	}
}
 
Example 13
/**
 * 销毁除了“过滤器列表控件”之外的其它控件
 */
private void disposeChild() {
	for (Control ctl : this.getChildren()) {
		if (!"filterName".equals(ctl.getData()) && ctl != null && !ctl.isDisposed()) {
			ctl.dispose();
		}
	}
}
 
Example 14
/**
 * Dispose this viewer SWT control ;
 */
public void dispose() {
	Control control = getControl();
	if (control != null && !control.isDisposed()) {
		control.dispose();
	}
}
 
Example 15
/**
 * 编辑
 */
private void edit() {
	String[] filters = customFilterList.getSelection();
	if (filters.length > 0) {
		if (isChange()) {
			if (!MessageDialog.openConfirm(getShell(), "", "不保存当前内容吗?")) {
				return;
			}
		}
		String key = filters[0];
		filterNameTxt.setText(key);

		String[] tempArray = XLFHandler.getCustomMatchFilterAdditionMap().get(key).get(0);
		if (tempArray[0].indexOf("and") != -1) {
			andBtn.setSelection(true);
			orBtn.setSelection(false);
		} else {
			andBtn.setSelection(false);
			orBtn.setSelection(true);
		}
		int check = Integer.parseInt(tempArray[1]);

		if (btnIsTagged != null) {
			if ((check & btnIsTaggedCheck) != 0) {
				btnIsTagged.setSelection(true);
			} else {
				btnIsTagged.setSelection(false);
			}
		}

		if (btnQT != null) {
			if ((check & btnQTCheck) != 0) {
				btnQT.setSelection(true);
			} else {
				btnQT.setSelection(false);
			}
		}
		if (btnPT != null) {
			if ((check & btnPTCheck) != 0) {
				btnPT.setSelection(true);
			} else {
				btnPT.setSelection(false);
			}
		}
		if (btnIsRemoveFromSrc != null) {
			if ((check & btnIsRemoveFromSrcCheck) != 0) {
				btnIsRemoveFromSrc.setSelection(true);
			} else {
				btnIsRemoveFromSrc.setSelection(false);
			}
		}

		for (Control ctl : conditionList) {
			if (!ctl.isDisposed()) {
				ctl.dispose();
			}
		}
		conditionList.clear();
		ArrayList<String[]> tmpList = XLFHandler.getCustomMatchFilterIndexMap().get(key);
		for (String[] tempIndex : tmpList) {
			String filterIndex = tempIndex[0];
			DynaComposite dyna = new DynaComposite(dynaComp, SWT.NONE);
			dyna.getFilterName().select(Integer.parseInt(filterIndex));
			dyna.getFilterName().notifyListeners(SWT.Selection, null);
			if ("0".equals(filterIndex)) { // 匹配率
				dyna.getConditions().select(Integer.parseInt(tempIndex[1]));
				dyna.getValue().setText(tempIndex[2]);
			} else if ("1".equals(filterIndex)) { // 关键字
				dyna.getConditions().select(Integer.parseInt(tempIndex[1]));
				dyna.getValue().setText(tempIndex[2]);
			} else if ("2".equals(filterIndex)) { // 来源
				dyna.getValue().setText(tempIndex[1]);
			}
			dyna.getValue().setForeground(black);
		}
		scroll.setMinSize(dynaComp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
		dynaComp.layout();
	} else {
		MessageDialog.openInformation(getShell(), "", "请选择一个自定义过滤器。");
	}
}
 
Example 16
protected boolean isDisposed( )
{
	Control ctrl = getControl( );
	return ( ctrl == null || ctrl.isDisposed( ) );
}
 
Example 17
/**
 * 编辑
 */
private void edit() {
	String[] filters = customFilterList.getSelection();
	if (filters.length > 0) {
		if (isChange()) {
			if (!MessageDialog.openConfirm(getShell(), "", Messages.getString("dialog.CustomFilterDialog.msg1"))) {
				return;
			}
		}
		String key = filters[0];
		filterNameTxt.setText(key);
		String link = XLFHandler.getCustomFilterAdditionMap().get(key);
		if (link.indexOf("and") != -1) {
			andBtn.setSelection(true);
			orBtn.setSelection(false);
		} else {
			andBtn.setSelection(false);
			orBtn.setSelection(true);
		}

		for (Control ctl : conditionList) {
			if (!ctl.isDisposed()) {
				ctl.dispose();
			}
		}
		conditionList.clear();
		ArrayList<String[]> tmpList = XLFHandler.getCustomFilterIndexMap().get(key);
		for (String[] tempIndex : tmpList) {
			String filterIndex = tempIndex[0];
			DynaComposite dyna = new DynaComposite(dynaComp, SWT.NONE);
			dyna.getFilterName().select(Integer.parseInt(filterIndex));
			dyna.getFilterName().notifyListeners(SWT.Selection, null);
			if ("0".equals(filterIndex) || "1".equals(filterIndex)) { // 关键字、批注
				dyna.getConditions().select(Integer.parseInt(tempIndex[1]));
				dyna.getValue().setText(tempIndex[2].replace("0x0020", " "));
				dyna.getValue().setForeground(black);
			} else if ("2".equals(filterIndex)) { // 属性
				dyna.getPropName().setText(tempIndex[1]);
				dyna.getPropValue().setText(tempIndex[2]);
				dyna.getPropName().setForeground(black);
				dyna.getPropValue().setForeground(black);
			}
		}
		scroll.setMinSize(dynaComp.computeSize(SWT.DEFAULT, SWT.DEFAULT));
		dynaComp.layout();
	} else {
		MessageDialog.openInformation(getShell(), "", Messages.getString("dialog.CustomFilterDialog.msg4"));
	}
}
 
Example 18
public static void
 addCopyToClipMenu(
final Control				control,
final copyToClipProvider	provider )
 {
  MouseAdapter ml = (MouseAdapter)control.getData( MOUSE_LISTENER_KEY );
  
  if ( ml != null ){
  
	  control.removeMouseListener( ml );
  }
  
  ml =
	  new MouseAdapter()
	  {
		  @Override
		  public void
		  mouseDown(
			 MouseEvent e )
		  {
			  if ( control.isDisposed()){

				  return;
			  }

			  final String	text = provider.getText();

			  if ( control.getMenu() != null || text == null || text.length() == 0 ){

				  return;
			  }

			  if (!(e.button == 3 || (e.button == 1 && e.stateMask == SWT.CONTROL))){

				  return;
			  }

			  final Menu menu = new Menu(control.getShell(),SWT.POP_UP);

			  MenuItem   item = new MenuItem( menu,SWT.NONE );

			  item.setData( MENU_ITEM_KEY, "" );

			  String	msg_text_id;

			  if ( provider instanceof copyToClipProvider2 ){

				  msg_text_id = ((copyToClipProvider2)provider).getMenuResource();

			  }else{

				  msg_text_id = "label.copy.to.clipboard";
			  }

			  item.setText( MessageText.getString( msg_text_id ));

			  item.addSelectionListener(
					  new SelectionAdapter()
					  {
						  @Override
						  public void
						  widgetSelected(
								  SelectionEvent arg0)
						  {
							  new Clipboard(control.getDisplay()).setContents(new Object[] {text}, new Transfer[] {TextTransfer.getInstance()});
						  }
					  });

			  control.setMenu( menu );

			  menu.addMenuListener(
					  new MenuAdapter()
					  {
						  @Override
						  public void
						  menuHidden(
								  MenuEvent arg0 )
						  {
							  if ( control.getMenu() == menu ){

								  control.setMenu( null );
							  }
						  }
					  });

			  menu.setVisible( true );
		  }
	  };
  
  control.setData( MOUSE_LISTENER_KEY, ml );
  
  control.addMouseListener( ml );
 }
 
Example 19
private boolean isDisposed()
{
	Control control = getControl();
	return control == null || control.isDisposed();
}
 
Example 20
/**
 * Completes the common prefix of all proposals directly in the code. If no common prefix can be found, the proposal
 * popup is shown.
 * 
 * @return an error message if completion failed.
 * @since 3.0
 */
public String incrementalComplete()
{
	if (Helper.okToUse(fProposalShell) && fFilteredProposals != null)
	{
		completeCommonPrefix();
	}
	else
	{
		final Control control = fContentAssistSubjectControlAdapter.getControl();

		if (fKeyListener == null)
		{
			fKeyListener = new ProposalSelectionListener();
		}

		if (!Helper.okToUse(fProposalShell) && !control.isDisposed())
		{
			fContentAssistSubjectControlAdapter.addKeyListener(fKeyListener);
		}

		BusyIndicator.showWhile(control.getDisplay(), new Runnable()
		{
			public void run()
			{
				fInvocationOffset = fContentAssistSubjectControlAdapter.getSelectedRange().x;
				fFilterOffset = fInvocationOffset;
				fFilteredProposals = computeProposals(fInvocationOffset, false);

				int count = (fFilteredProposals == null) ? 0: fFilteredProposals.length;
				if (count == 0)
				{
					// IM turned off for the moment, as it's annoying more than helpful to beep.
					// control.getDisplay().beep();
					hide();
				}
				else if ((count == 1)&& (canAutoInsert(fFilteredProposals[0])))
				{
					insertProposal(fFilteredProposals[0],'\0', 0, fInvocationOffset);
				}
				else if (completeCommonPrefix())
				{
					hide();
				}
				else
				{
					fComputedProposals = fFilteredProposals;
					createPopup(fComputedProposals);
				}
			}
		});
	}

	return getErrorMessage();
}