right-click on TableItem [message #462139] |
Fri, 07 October 2005 06:47 |
Eclipse User |
|
|
|
Originally posted by: fabian.eberhardt.sap.com
Hi,
I've got a Table, TableView, LabelProvider, ContentProvider, TableCursor.
How can I detect a right-click on a tableItem and provide a context menu?
With
addMouseListener(new MouseAdapter() {
public void mouseDown(MouseEvent e) {
}
public void mouseDoubleClick(MouseEvent e){
}
public void mouseUp(MouseEvent e) {
}
});
I can add this Listener to the TableCursor. But I can't detect a
right-click.
Any ideas?
Regards,
Fabian
|
|
|
Re: right-click on TableItem [message #462162 is a reply to message #462139] |
Fri, 07 October 2005 13:06 |
Eclipse User |
|
|
|
Originally posted by: ddana78ar.yahoo.com.ar
table.addMouseListener(new MouseListener() {
public void mouseUp(MouseEvent e) {
}
public void mouseDown(MouseEvent e) {
if (event.button==3){
Menu menu = new Menu (table.getShell(), SWT.POP_UP);
MenuItem item = new MenuItem (menu, SWT.PUSH);
item.setText ("item 1");
//draws pop up menu:
Point pt = new Point (event.x, event.y);
pt = table.toDisplay (pt);
menu.setLocation (pt.x, pt.y);
menu.setVisible (true);
}
}
public void mouseDoubleClick(MouseEvent e) {
}
});
|
|
|
|
Re: right-click on TableItem [message #462187 is a reply to message #462179] |
Fri, 07 October 2005 16:05 |
James Cornett Messages: 3 Registered: July 2009 |
Junior Member |
|
|
This is what I'm doing.
private void init() {
PopupListener listner = new PopupListener();
setPopupListener(listener);
Menu menu = new Menu(tree);
MenuItem item = new MenuItem(menu, SWT.NONE);
item.setText("Do Something");
item.addSelectionListener(new SelectionListener() {
public void widgetDefaultSelected(SelectionEvent e)
{
}
public void widgetSelected(SelectionEvent e)
{
fireDoSomething();
}
});
}
public void setPopupMenu(Menu menu)
{
popupMenu = menu;
}
public void setPopupListener(Listener listener)
{
tree.removeListener(SWT.MenuDetect, popupListener);
popupListener = listener;
tree.addListener(SWT.MenuDetect, popupListener);
}
class PopupListener implements Listener
{
public void handleEvent(Event event)
{
if ( (tree.getSelection().length > 0) && (popupMenu != null) &&
(!popupMenu.isDisposed())) {
popupMenu.setLocation(event.x, event.y);
popupMenu.setVisible(true);
while (!popupMenu.isDisposed() && popupMenu.isVisible()) {
if (!Display.getCurrent().readAndDispatch())
Display.getCurrent().sleep();
}
}
}
}
"Grant Gayed" <grant_gayed@ca.ibm.com> wrote in message
news:di62mr$vrg$1@news.eclipse.org...
> Ideally the listener should be SWT.MenuDetect, in order to preserve native
> menu-show behaviour differences.
>
> Grant
>
> "DD" <ddana78ar@yahoo.com.ar> wrote in message
> news:14443634.1128690409290.JavaMail.root@cp1.javalobby.org...
>> table.addMouseListener(new MouseListener() {
>> public void mouseUp(MouseEvent e) {
>> }
>> public void mouseDown(MouseEvent e) {
>> if (event.button==3){
>> Menu menu = new Menu (table.getShell(), SWT.POP_UP);
>> MenuItem item = new MenuItem (menu, SWT.PUSH);
>> item.setText ("item 1");
>>
>> //draws pop up menu:
>> Point pt = new Point (event.x, event.y);
>> pt = table.toDisplay (pt);
>> menu.setLocation (pt.x, pt.y);
>> menu.setVisible (true);
>> }
>> }
>> public void mouseDoubleClick(MouseEvent e) {
>> }
>> });
>
>
|
|
|
Powered by
FUDForum. Page generated in 0.03114 seconds