Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Rich Client Platform (RCP) » ControlContribution & Separator on Toolbar
ControlContribution & Separator on Toolbar [message #466121] Sat, 14 April 2007 11:51 Go to next message
michael is currently offline michaelFriend
Messages: 44
Registered: July 2009
Member
If I put a Separator between two ControlContribution's in a view toolbar, each control's height on the toolbar becomes too small to see the control.

View Code:
		final IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();

		toolBarManager.add(new MagnifyWithGridContribution("magnifyGrid", parent));
		toolBarManager.add(new Separator());
		toolBarManager.add(new MagnifyComboContribution("magnifyValue", parent));


ControlContribution code:
import org.eclipse.jface.action.ControlContribution;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.ui.plugin.AbstractUIPlugin;

public class MagnifyComboContribution extends ControlContribution {

	private final Composite notifyComposite;
	
	private Composite c;

	public MagnifyComboContribution(final String id, final Composite notifyComposite) {
		super(id);
		this.notifyComposite = notifyComposite;
	}
	
	@Override
	protected Control createControl(Composite parent) {
		c = new Composite(parent, SWT.BORDER);
		c.setLayout(new GridLayout(2, false));
		((GridLayout) c.getLayout()).horizontalSpacing = 0;
		((GridLayout) c.getLayout()).verticalSpacing = 0;
		((GridLayout) c.getLayout()).marginHeight = 0;
		((GridLayout) c.getLayout()).marginWidth = 0;
		final Label l = new Label(c, SWT.NONE);
		final GridData data = new GridData();
		data.widthHint = 26;
		l.setLayoutData(data);

		l.setImage(AbstractUIPlugin.imageDescriptorFromPlugin(Application.PLUGIN_ID,
			IImageKeys.MAGNIFY_2).createImage());

		final Combo combo = new Combo(c, SWT.NONE | SWT.DROP_DOWN | SWT.READ_ONLY);
		combo
			.setItems(new String[] { "1", "2", "4", "6", "8", "10", "12", "14", "16", "18", "20", "22" });
		combo.setSelection(new Point(100, 1000));
		combo.setTextLimit(5);
		combo.setText("6");
		Event event = new Event();
		event.data = "magnify";
		event.widget = combo;
		notifyComposite.notifyListeners(SWT.Modify, event);
		//combo.setToolTipText(getId());
		combo.addModifyListener(new ModifyListener() {
			public void modifyText(final ModifyEvent e) {

				Event event = new Event();
				event.data = new Object[] {"magnify", combo };
				notifyComposite.notifyListeners(SWT.Modify, event);
			}
		});
		
		return c;
	}
}


import org.eclipse.jface.action.ControlContribution;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;

public class MagnifyWithGridContribution extends ControlContribution {

	private final Composite notifyComposite;

	public MagnifyWithGridContribution(final String id, final Composite notifyComposite) {
		super(id);
		this.notifyComposite = notifyComposite;
	}

	@Override
	protected Control createControl(Composite parent) {
		final Button b = new Button(parent, SWT.BORDER | SWT.CHECK | SWT.CENTER);
		b.setText("Grid (" + "\u2265" + "4%)  ");
		b.addSelectionListener(new SelectionListener() {
			Event event = new Event();

			public void widgetDefaultSelected(final SelectionEvent e) {
			}

			public void widgetSelected(final SelectionEvent e) {
				event.data = new Object[] { "magnify", b };
				notifyComposite.notifyListeners(SWT.Modify, event);
			}
		});
		
		return b;
	}
}
Re: ControlContribution & Separator on Toolbar [message #466123 is a reply to message #466121] Sat, 14 April 2007 11:52 Go to previous messageGo to next message
michael is currently offline michaelFriend
Messages: 44
Registered: July 2009
Member
------=_Part_1883_2005024.1176551630565
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Image of problem attached.
------=_Part_1883_2005024.1176551630565
Content-Type: image/gif; name=untitled-1.gif
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=untitled-1.gif

R0lGODlh+wECAfcAAAAAAOzjz412Qv8AAABI8ffShQAsvFRTWQAbmyB28gAT jHuAopStvhkyYw5j
6rnc2UJqszKK+/+yLQBU44e95qSimE5bcP/72RVHrsrGr9zazfHv4s2GZyd+ 9gdc51Ntiyx/xrXI
9xxz8QA+3YJ+frWtp9zm+ffy3D2V/wAeoyVAdfXq1O34/rft9BJn7BhGiBCC 4qXF40mS3oWRvWhq
cq+QWC6G+Zyv13VuS//uz8LK23Ox6iR69LrD0wN54SFyvbng7dnh3wA93f// /xU6eGmCp8e2mpeb
tbm7zHFvZA1/4wpf6DaN/BVr7R5TgSuC97m4xK3D2JWTjNjWx1ql15XF6IGb u9P2752+0MT39Z3S
81Vzkbm3wBhtvMTT99Hg/Wd1jX+ducXh3v//9UmGy8zFwB04ailEewl85HCV 0+bu/HRunKmsvGZm
Zvby7NuJbhV91v7w1L26rq/V5F5yjY6NobWac9DFwq6osKDH1/+0P6/F9Kqo nB+G43F0g11eZ8Tu
/7zh4zV9vC9LgqbO2+fk1L3O97jo/47A6pLO+cz//4yLhQAzzCE7cC1GdRkx a46ozl2BnOr++Pzx
3f//5au90ajV45qtyv+/PNG5jN3XxfXWkZ3M66yqnhqF5eXdzZmZmXNrlqjV 3/3118/k39nQv4m8
7bjL9tOFcPrx15644L/Ax6e40c3z8NuQd+zp2AAeoOP2/+z//9vZyxOD5yAy YS1Ifvn24v/122Fy
i6vN3kdvtldtirfj77nf4KSknTB/xYOCeGlsfN/z7ry0vMrY+avY773k5uXl 4qHV7aTL7v///wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEH AMsALAAAAAD7AQIB
AAj/AF8J5EOwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEMKFEhA CCwFI1OqXMmypcuX
MGPKnEmzps2bOHPq3MmzZ88BQIMKHUq0qNGjSJMqXcq0qdOnUJWaROmzqtWr WLNq3cq1q88BXsOK
Het1wFSyaNOqXcu2rVWwbuPKJWv2pMqQePPq3cu3r9+/fAYAHky48MKVdakO nFuTD4rHkCNLnky5
suXLmFHwYcy5M1a4nkOLhrk5ZeKRpUez5MOktevXsGPLnk27tm3XqVXr3m2a t2/RuU8v/j3wtvHj
yJHnJs6cMejm0NUGPztcIBxPMLJnR+ODFq0+ZCLF/+UTobz58+UbNDCj4oyt Qejjy59Pvz765dHz
p32uvz/X6XZV90oXPxRoYIHAACNIEU6MZ8ODEEJIxIMYyECFKYn0MkiEHHbo 4YcghmgDfv6VuBV/
JqbYE4CK5VbFBSvEuEIquNSIywlDbDHeEzzyiAEGLxAh5BPqsefeID0mqeSS TDbpZJMkqiglTyhO
aSVNLKKWEiJxfOJlAGXgQcwdK0wyxAfjdaCmmhisSYSaAgAip5wCrGnnnXjm qeeeekZ55Z8zVQno
oCtlKSAFOUwxyyxc9DCHMTEcocmZXQEAAGk8ZJrpC5pqigMgsYQaCw6dlmrq qaimqioPfhLqqkoo
Gv822BAthWHrrbjmquuuvPbq66+7ajmScK/kRkEcGmiwig5uAJFMC5zUMQYv Klk6krU3XXppTHwk
4G0CQhLxrbdtAMLCuSy0Ma63Q7Q7xLrwxivvvOu2+uq9sSah77789uvvvwAH LPDABPe7Aa0sheHu
wgw37PDDEEcs8cNhCCsQscbGsWglx+giii+BKGKFJnRUu+0r2OJ08kt8iOCy y0S8/LIFNNdsgcwi
DIHzzjz37LPP9t7rar7ZrqQtygJZmjLSJp98NNNPV/vSwSNlkJLCVQGr9da4 DlGxgBinhKgmpURB
SB4PiEHKFViUkIvUR2+r9LVzKy03ytY6fdfPfLv/rPPO7vrdbs5/L/xy4Dkn TvjfLwct9KBE27Ry
0nfrfa1LTzt9t9FTI/yK1SNh7ZPCE5duutdeW/xK2CONXQorlhAiRhDISMKA 23AjPXnUvOt+edJ3
NSF8E0U20t57wyef/BDKN8G88Mw/L73zwz9fvfPTQ5+844//GXlNcud9ueXA N0353CmFn37nVV/t
eUpQXAKJKjewMUUhMJF++sNqfFGMF4YI4CkGSMA9mAB1XyuWaaijwJFogRKU uAUSlJGFVgxjDEPw
wyjAIDWona93eoua7+7ighK6oEJU2AGGNGTCFrZwCC50AQxLCMMZ2lCGJrSh u3BIw4W1kHvds1Ks
/zZAxCIa8YhITKISl8jEJjoRiZ4DnUD0t78qWrGKCTRUAwUCgV1AIBNGmMEh ZNGuBdQiDY7oYOXG
x0bgiVCEA3GAHB1QvOMNYo54xOMQ8uiAPcpxj34MZB/nCEhCDvKPfJQjEIMo JRRd8ZGQjOTCasW1
SlrykrpSHesEIgc51EACHDgACYThhz8EoxMVWM7umDbCVsatg3dZgiyXEKc5 0WmWuMzlEHQ5y13u
cgm/9GUvgTnMXxJTlsZcwiIZmSJBMVNKWlzOJjDxhlB0QiarxBu27MbKV66v UB4Ipwc+JapQ4UCc
6EynBxYWTne1853rXKc72+nOIaBznuJc5jP94//MfZoomikpgB5QsQYpbGVy mGsJHybA0AmUC13n
akNDJ0rRilrUokO4qEYtqk9/5qefHu0PQEdiB1esYRFZQR82FTpRm9lsozCF aUZjCtOOhrQ5IL1p
dEYqkF/QABS6WShNh0rUom7Upjr9TU6Tyhye/kaoRo2qVGmKVKbuZqlW9U1w RhCgLT51qmANa0Wr
mtXRYLWsQTUNV1vUHKiK9a1SJStaPXPWuQJHrV2VFUbgyteo6vWvgB2MYAJL 2MJyBK8t6qtiF8vY
xjr2sZCNrGQZOoDJWvaymA3rVvOa2c569rOgDa1oNVrZ0Zr2tIrdbGInYNfW JrWurp0LQ1WLGob/
xva2+4QtbtsyW8TWlrW7Da7QokLc4hr3uMhNrnKDstbfCve50I1uT3o7EgI0 dyC2la52t8tdllCX
JNctVna7S97yPve7r7AuZ4Fr3va6167oVe9q30vf+iY1vuEVqn33y19G4ne9 /Q2wgAf13/kO+MAI
LlGBnZvgBjuYOAvGLnsfTOEKdybC4p2whTfMYbVgWL8dDrGIw/Lh8Y74xCj2 SYk1nOIWu3gmK36x
jGf8khjT+MY4tjGOd/xiHfP4xyf2MZCHzGEhE/nIDzYykpd8YCUz+cn8dTKU p/xeKVP5yuS1Mpa3
LF0tc/nLwfUymMfsWjGT+cxlNTOa16xTNbP5/837dDOc59w9OdP5zq6yM573 fCU98/nPKfIzoAet
H0ET+tDMMTSiF70bRTP60aFxNKQnLdsJ5Ea+DKa0pqMj6U17Gi2d/rSovRLq UZs6K6U+tapVbOmU
YFrCq451pS+dXxPL+tZpSTWudx0TXfP6195tdXVrzWJgG9sqvj62sZOt7F8z u9m7fja0by3tace6
2tZWNbazbeptc1vU3v62p8Mtbk2Tu9yTPje6H63udS+63e4+NLzjPeh50/vP 9r73nvOt7zvzu99z
/jfA3yzwga+54AY/M8ITPuaFM/zLDn/4liMu8StTvOJTji8DQYxxZWscwB33 uLBJsnFbh5zXH/83
8MmBnfJMrxzlI09vyYv98mvHvCQgr3m0bz5zncP80j33Oa5bDmuhU5vnOTf6 qomeYaXLmukcd/qp
oW5yqX+a6jS3urmRrnKtg5vrLvf6uMFedLFfnexNN/vZgZ50tVMa624fO9u7 HndIw73ub0d71PHO
6Lvznd16r/rf6x34rA+ez34/vLwLr/h3M77xi5972CGP+MdTHtCJv/y+La/5 zUu+7J3Hc+ZDH3DO
k770n0/76ek8+tUf3PSuf33q9x57NLe+9g2HPe5zP3vB757Lt//9xHUv/OH3 3vDFzzjxk0/l4DMf
yhd/vnmjL/0s35zY1Qf+9duefehvn+7dfzL/9cPf5e9PnvxIHj/6z2t+0K8/ /e1X/fvhT2vuzx/I
6r//bfOv/zLHn/b9t2P8F4BzNYAEmGb/53sH2GMJiHwLmGIG+ID31YASKIAU WIE3FoEY6FEauIFx
doEeyID1B34hGGQgWIIQeIIoaIIjeH4r2GEd+IJCE4My+Co0WIOEcoM4CCg6 uIN9poI+WGE9GIRS
MoREGGjLd4RNloRKKGDO14QB9oRQGGVMOIX7JYVWWF9YmIVVVoVc2IXH94UI toViWF5kWIbddYZo
uF1quIblF4ZuSIVwGIf21YZ0KFx2eIe7lYd6uH9e2IfQxYeA2FqCOIgF+IeG uIeImIh+OIeM/8hd
hfiITGWEkhgXlFiJvAWEmIiHmriJitiC7ueJYdaJohhbK4ZaqJiKqriKrNiK rsiKoJhhrziLtFiL
tniLuOiKsWhYvNiLvviLwBiMwmhYrhZepdher3aMyGiMykheOKcYzeiMDBSN 3fWM1Fhe1niN1TiN
2ihd2diN2vWN4Bhd4jiOz1WO5hhc6JiOuLWO7Bhb7viOrRWP8jhX9FiPZXWP +GhV+riPSdWP/nhT
ABmQHjWQBLlPBnmQzJSQChlEDNmQj/OQEHkvz0gAFnmRGJmRGrmRHNmRHvmR IBmSIjmSJFmSJnmS
KJmSKrmSLNmSLvmSMBmTMjmTGykEBnASQq2Qkzq5kzzZkyPwk0AZlEIZlD1Z lD45lEgplEa5lEzZ
lE75lFAZlVI5lUyZlFb5k1SZlVq5lVzZlU55lVbplWI5lmQZlYxgACmgALCw lmzZlm75lnAZl3I5
l3RZl3Z5l3iZl3q5l3zZl375l4AZmII5mIRZmIZ5mIgplwigAIzZmI75mJAZ mZI5mZRZmZZ5mZiZ
mZq5mZzZmZ75maAZmqI5mqRZmqZ5mqiZmpYZEAA7
------=_Part_1883_2005024.1176551630565--
Re: ControlContribution & Separator on Toolbar [message #466127 is a reply to message #466123] Sat, 14 April 2007 22:05 Go to previous message
Eclipse UserFriend
Originally posted by: bugjester.yahoo.com

I had a similar problem a long time ago (I think it was related more to
width than height). I can't remember exactly what I did to fix it, and
I don't have access to that code any more, but I seem to remember
wrapping some of the controls in ToolItem objects. You might try some
experiments like the following:

protected Control createControl(Composite parent)
{
final Button b = new Button(parent,
SWT.BORDER | SWT.CHECK | SWT.CENTER);
b.setText(...);
ToolItem toolItem = new ToolItem((ToolBar)parent, SWT.NONE);
toolItem.setControl(b);
...
return b;
}

Hope that helps a little.

Steve

michael wrote:
> If I put a Separator between two ControlContribution's in a view
toolbar, each control's height on the toolbar becomes too small to see
the control.
....
> public class MagnifyWithGridContribution extends ControlContribution {
>
> private final Composite notifyComposite;
>
> public MagnifyWithGridContribution(final String id, final Composite
notifyComposite) {
> super(id);
> this.notifyComposite = notifyComposite;
> }
>
> @Override
> protected Control createControl(Composite parent) {
> final Button b = new Button(parent, SWT.BORDER | SWT.CHECK |
SWT.CENTER);
> b.setText("Grid (" + "\u2265" + "4%) ");
> b.addSelectionListener(new SelectionListener() {
> Event event = new Event();
>
> public void widgetDefaultSelected(final SelectionEvent e) {
> }
>
> public void widgetSelected(final SelectionEvent e) {
> event.data = new Object[] { "magnify", b };
> notifyComposite.notifyListeners(SWT.Modify, event);
> }
> });
>
> return b;
> }
> }
> [/code]
Previous Topic:Help button on Macintosh laptops
Next Topic:A mind mapping software based on Eclipse RCP
Goto Forum:
  


Current Time: Thu Apr 25 04:40:03 GMT 2024

Powered by FUDForum. Page generated in 0.04393 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top