Java上的Lotus Notes插件

时间:2015-04-30 12:40:45

标签: java lotus-notes

我需要一些关于在Java上编写Lotus Notes小部件的帮助。我的问题是:我根据本教程创建了一个插件:Developing a simple plug-in for Lotus Notes

但是没有关于如何编写任何代码的信息。我也没有找到任何使用谷歌的东西。更具体一点:

  1. 当我在Notes客户端中单击某个电子邮件时,我需要获取此电子邮件地址并将其显示在我的小部件上。
  2. 当我点击某个链接时,我需要在浏览器中打开此链接。
  3. 有人可以帮助我并提供一些例子吗?非常感谢提前!这是我的代码:

    package com.domiclipse.tutorial1.views;
    import org.eclipse.jface.action.Action;
    import org.eclipse.jface.action.IMenuListener;
    import org.eclipse.jface.action.IMenuManager;
    import org.eclipse.jface.action.IToolBarManager;
    import org.eclipse.jface.action.MenuManager;
    import org.eclipse.jface.action.Separator;
    import org.eclipse.jface.dialogs.MessageDialog;
    import org.eclipse.jface.viewers.DoubleClickEvent;
    import org.eclipse.jface.viewers.IDoubleClickListener;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.jface.viewers.IStructuredContentProvider;
    import org.eclipse.jface.viewers.IStructuredSelection;
    import org.eclipse.jface.viewers.ITableLabelProvider;
    import org.eclipse.jface.viewers.LabelProvider;
    import org.eclipse.jface.viewers.TableViewer;
    import org.eclipse.jface.viewers.Viewer;
    import org.eclipse.jface.viewers.ViewerSorter;
    import org.eclipse.swt.SWT;
    import org.eclipse.swt.browser.Browser;
    import org.eclipse.swt.graphics.Image;
    import org.eclipse.swt.widgets.Composite;
    import org.eclipse.swt.widgets.Menu;
    import org.eclipse.ui.IActionBars;
    import org.eclipse.ui.ISharedImages;
    import org.eclipse.ui.IWorkbenchActionConstants;
    import org.eclipse.ui.PlatformUI;
    import org.eclipse.ui.part.ViewPart;
    
    
    /**
     * This sample class demonstrates how to plug-in a new
     * workbench view. The view shows data obtained from the
     * model. The sample creates a dummy model on the fly,
     * but a real implementation would connect to the model
     * available either in this or another plug-in (e.g. the workspace).
     * The view is connected to the model using a content provider.
     * <p>
     * The view uses a label provider to define how model
     * objects should be presented in the view. Each
     * view can present the same model objects using
     * different labels and icons, if needed. Alternatively,
     * a single label provider can be shared between views
     * in order to ensure that objects of the same type are
     * presented in the same way everywhere.
     * <p>
     */
    
    public class SampleView extends ViewPart {
        private Action action1;
        private Action action2;
        private Action doubleClickAction;
    
        /*
         * The content provider class is responsible for
         * providing objects to the view. It can wrap
         * existing objects in adapters or simply return
         * objects as-is. These objects may be sensitive
         * to the current input of the view, or ignore
         * it and always show the same content 
         * (like Task List, for example).
         */
    
        class ViewContentProvider implements IStructuredContentProvider {
            public void inputChanged(Viewer v, Object oldInput, Object newInput) {
            }
            public void dispose() {
            }
            public Object[] getElements(Object parent) {
                return new String[] { "One", "Two", "Three" };
            }
        }
        class ViewLabelProvider extends LabelProvider implements ITableLabelProvider {
            public String getColumnText(Object obj, int index) {
                return getText(obj);
            }
            public Image getColumnImage(Object obj, int index) {
                return getImage(obj);
            }
            public Image getImage(Object obj) {
                return PlatformUI.getWorkbench().
                        getSharedImages().getImage(ISharedImages.IMG_OBJ_ELEMENT);
            }
        }
        class NameSorter extends ViewerSorter {
        }
    
        /**
         * The constructor.
         */
        public SampleView() {
        }
    
        /**
         * This is a callback that will allow us
         * to create the viewer and initialize it.
         */
        @Override
        public void createPartControl(Composite parent) {
        viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
        viewer.setContentProvider(new ViewContentProvider());
        viewer.setLabelProvider(new ViewLabelProvider());
        viewer.setSorter(new NameSorter());
        viewer.setInput(getViewSite());
            makeActions();
            hookContextMenu();
            hookDoubleClickAction();
            contributeToActionBars();
        }
    
        private void hookContextMenu() {
            MenuManager menuMgr = new MenuManager("#PopupMenu");
            menuMgr.setRemoveAllWhenShown(true);
            menuMgr.addMenuListener(new IMenuListener() {
                public void menuAboutToShow(IMenuManager manager) {
                    SampleView.this.fillContextMenu(manager);
                }
            });
    //      Menu menu = menuMgr.createContextMenu(viewer.getControl());
            //viewer.getControl().setMenu(menu);
            //getSite().registerContextMenu(menuMgr, viewer);
        }
    
        private void contributeToActionBars() {
            IActionBars bars = getViewSite().getActionBars();
            fillLocalPullDown(bars.getMenuManager());
            fillLocalToolBar(bars.getToolBarManager());
        }
    
        private void fillLocalPullDown(IMenuManager manager) {
            manager.add(action1);
            manager.add(new Separator());
            manager.add(action2);
        }
    
        private void fillContextMenu(IMenuManager manager) {
            manager.add(action1);
            manager.add(action2);
            // Other plug-ins can contribute there actions here
            manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        }
    
        private void fillLocalToolBar(IToolBarManager manager) {
            manager.add(action1);
            manager.add(action2);
        }
    
        private void makeActions() {
            action1 = new Action() {
                public void run() {
                    showMessage("Action 1 executed");
                }
            };
            action1.setText("Action 1");
            action1.setToolTipText("Action 1 tooltip");
            action1.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
                getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
    
            action2 = new Action() {
                public void run() {
                    showMessage("Action rehrhrhertrSd");
                }
            };
            action2.setText("Action 2");
            action2.setToolTipText("Action 2 tooltip");
            action2.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
                    getImageDescriptor(ISharedImages.IMG_OBJS_INFO_TSK));
            doubleClickAction = new Action() {
                public void run() {
                    //ISelection selection = viewer.getSelection();
                    //Object obj = ((IStructuredSelection)selection).getFirstElement();
                    //showMessage("Double-click detected on "+obj.toString());
                }
            };
        }
    
        private void hookDoubleClickAction() {
            //viewer.addDoubleClickListener(new IDoubleClickListener() {
            //  public void doubleClick(DoubleClickEvent event) {
            //      doubleClickAction.run();
            //  }
            //});
        }
        private void showMessage(String message) {
            //MessageDialog.openInformation(
            //  viewer.getControl().getShell(),
            //  "Sample View",
            //  message);
        }
    
        /**
         * Passing the focus request to the viewer's control.
         */
        public void setFocus() {
        //  viewer.getControl().setFocus();
        }
    }
    

0 个答案:

没有答案