Experimental focus listener
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / viewers / AbstractPageViewer.java
index 21f259c8882d22be81695533091c93be57e4fee5..b52f76be52f5afe769c436d5cdbed3e5dfc0b11f 100644 (file)
@@ -16,6 +16,8 @@ import org.eclipse.jface.viewers.ContentViewer;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.events.FocusListener;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseListener;
 import org.eclipse.swt.widgets.Composite;
@@ -36,6 +38,7 @@ public abstract class AbstractPageViewer extends ContentViewer implements
        private final CmsEditable cmsEditable;
 
        private MouseListener mouseListener;
+       private FocusListener focusListener;
 
        private EditablePart edited;
        private ISelection selection = StructuredSelection.EMPTY;
@@ -52,6 +55,7 @@ public abstract class AbstractPageViewer extends ContentViewer implements
 
                if (cmsEditable.canEdit()) {
                        mouseListener = createMouseListener();
+                       focusListener = createFocusListener();
                }
                page = findPage(parent);
        }
@@ -88,6 +92,21 @@ public abstract class AbstractPageViewer extends ContentViewer implements
                };
        }
 
+       /** Create (retrieve) the FocusListener to use. */
+       protected FocusListener createFocusListener() {
+               return new FocusListener() {
+                       private static final long serialVersionUID = 1L;
+
+                       @Override
+                       public void focusLost(FocusEvent event) {
+                       }
+
+                       @Override
+                       public void focusGained(FocusEvent event) {
+                       }
+               };
+       }
+
        protected Composite findPage(Composite composite) {
                if (composite instanceof ScrolledPage) {
                        return (ScrolledPage) composite;
@@ -275,6 +294,10 @@ public abstract class AbstractPageViewer extends ContentViewer implements
                return mouseListener;
        }
 
+       public FocusListener getFocusListener() {
+               return focusListener;
+       }
+
        public CmsEditable getCmsEditable() {
                return cmsEditable;
        }