1 package org
.argeo
.slc
.client
.rcp
;
3 import org
.argeo
.security
.ui
.rcp
.SecureWorkbenchWindowAdvisor
;
4 import org
.eclipse
.swt
.SWT
;
5 import org
.eclipse
.swt
.dnd
.DropTargetAdapter
;
6 import org
.eclipse
.swt
.dnd
.DropTargetEvent
;
7 import org
.eclipse
.swt
.graphics
.Image
;
8 import org
.eclipse
.swt
.widgets
.Event
;
9 import org
.eclipse
.swt
.widgets
.Listener
;
10 import org
.eclipse
.swt
.widgets
.Menu
;
11 import org
.eclipse
.swt
.widgets
.MenuItem
;
12 import org
.eclipse
.swt
.widgets
.Shell
;
13 import org
.eclipse
.swt
.widgets
.Tray
;
14 import org
.eclipse
.swt
.widgets
.TrayItem
;
15 import org
.eclipse
.ui
.IWorkbenchWindow
;
16 import org
.eclipse
.ui
.application
.IWorkbenchWindowConfigurer
;
17 import org
.eclipse
.ui
.part
.EditorInputTransfer
;
20 * Set here initial default size of the UI
25 public class SlcSecureWorkbenchWindowAdvisor
extends
26 SecureWorkbenchWindowAdvisor
{
28 private TrayItem trayItem
;
30 public SlcSecureWorkbenchWindowAdvisor(
31 IWorkbenchWindowConfigurer configurer
, String username
) {
32 super(configurer
, username
);
35 // public ActionBarAdvisor createActionBarAdvisor(
36 // IActionBarConfigurer configurer) {
37 // return new ApplicationActionBarAdvisor(configurer);
42 public void postWindowOpen() {
49 public void preWindowOpen() {
50 getWindowConfigurer().addEditorAreaTransfer(EditorInputTransfer
.getInstance());
51 getWindowConfigurer().configureEditorAreaDropListener(new DropTargetAdapter() {
54 public void dragEnter(DropTargetEvent event
) {
55 System
.out
.println("DROP enter!!! " + event
);
59 public void dragLeave(DropTargetEvent event
) {
60 System
.out
.println("DROP leave!!! " + event
);
63 public void drop(DropTargetEvent event
) {
64 System
.out
.println("DROP drop!!! " + event
);
69 public void dropAccept(DropTargetEvent event
) {
70 System
.out
.println("DROP accept!!! " + event
);
71 super.dropAccept(event
);
75 super.preWindowOpen();
79 public boolean preWindowShellClose() {
80 // hide but do not dispose if tray is supported
81 if (trayItem
!= null) {
82 getWindowConfigurer().getWindow().getShell().setVisible(false);
88 /** Init tray support */
89 protected void initTray() {
90 IWorkbenchWindow window
= getWindowConfigurer().getWindow();
91 final Tray tray
= window
.getShell().getDisplay().getSystemTray();
92 trayItem
= new TrayItem(tray
, SWT
.NONE
);
97 Image trayImage
= ClientRcpPlugin
.getDefault().getImageRegistry()
98 .get("argeoTrayIcon");
99 trayItem
.setImage(trayImage
);
100 trayItem
.setToolTipText("Argeo SLC");
103 // TODO: contribute more commands
104 trayItem
.addListener(SWT
.MenuDetect
, new Listener() {
105 public void handleEvent(Event event
) {
106 IWorkbenchWindow window
= getWindowConfigurer().getWindow();
107 Menu menu
= new Menu(window
.getShell(), SWT
.POP_UP
);
108 MenuItem exit
= new MenuItem(menu
, SWT
.NONE
);
109 exit
.setText("Exit");
110 exit
.addListener(SWT
.Selection
, new Listener() {
111 public void handleEvent(Event event
) {
112 getWindowConfigurer().getWorkbenchConfigurer()
113 .getWorkbench().close();
116 menu
.setVisible(true);
120 // add behavior when clicked upon
121 trayItem
.addListener(SWT
.Selection
, new Listener() {
122 public void handleEvent(Event event
) {
123 Shell shell
= getWindowConfigurer().getWindow().getShell();
124 if (shell
.isVisible()) {
125 if (shell
.getMinimized())
126 shell
.setMinimized(false);
128 shell
.setVisible(false);
129 shell
.setMinimized(true);
132 shell
.setVisible(true);
135 shell
.setMinimized(false);
142 public void dispose() {
143 if (trayItem
!= null)