<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 1,  comments - 25,  trackbacks - 0

    曾經很蠢的自己去寫了一個Dialog去包裝preference View.
    代碼如下 在TS1方法下:

    package com.wipro.testtools.ui.internal.action;

    import java.util.Iterator;

    import org.eclipse.ui.IPerspectiveDescriptor;
    import org.eclipse.ui.IWorkbench;
    import org.eclipse.ui.IWorkbenchWindow;
    import org.eclipse.ui.IWorkbenchWindowActionDelegate;
    import org.eclipse.ui.WorkbenchException;
    import org.eclipse.ui.internal.OpenPreferencesAction;
    import org.eclipse.ui.internal.Workbench;
    import org.eclipse.ui.internal.WorkbenchPlugin;
    import org.eclipse.ui.internal.actions.OpenPerspectiveDialogAction;
    import org.eclipse.ui.internal.dialogs.SelectPerspectiveDialog;
    import org.eclipse.ui.dialogs.PreferencesUtil;
    import org.eclipse.ui.help.WorkbenchHelp;
    import org.eclipse.core.runtime.IAdaptable;
    import org.eclipse.jface.action.IAction;
    import org.eclipse.jface.viewers.ISelection;
    import org.eclipse.jface.window.Window;
    import org.eclipse.jface.dialogs.TitleAreaDialog;
    import org.eclipse.jface.preference.IPreferenceNode;
    import org.eclipse.jface.preference.PreferenceManager;
    import org.eclipse.jface.preference.IPreferencePage;
    import org.eclipse.jface.preference.PreferenceDialog;
    import org.eclipse.swt.widgets.Shell;

    public class OpenPreferencePages implements IWorkbenchWindowActionDelegate {
        public OpenPreferencePages() {
            super();
        }

        private IWorkbenchWindow workbenchWindow;

        public void dispose() {
        }

        public void init(IWorkbenchWindow window) {
            workbenchWindow = window;
        }

        public void run(IAction action) {

            ts2();
        }

        private void ts2() {
            // OpenPreferencesAction action = new OpenPreferencesAction();
            // OpenPerspectiveDialogAction action = new
            // OpenPerspectiveDialogAction(null);
            // action.run();
            String ourPreferenceDialog = "com.wipro.testtools.ui.preferences.SamplePreferencePage";
            PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(null, ourPreferenceDialog, new String[]{ourPreferenceDialog}, null);
           
            dialog.open();

        }

        /**
         *
         */
        private void ts1() {
            String PreferenceNodeId = "org.eclipse.ui.preferencePages.Workbench";
            PreferenceDialogWrapper dialog = null;
            PreferenceManager manager = WorkbenchPlugin.getDefault()
                    .getPreferenceManager();
            if (manager != null) {
                dialog = new PreferenceDialogWrapper(getShell(), manager);
                dialog.create();
                // WorkbenchHelp.setHelp(dialog.getShell(),
                // IHelpContextIds.PREFERENCE_DIALOG);

                for (Iterator iterator = manager.getElements(
                        PreferenceManager.PRE_ORDER).iterator(); iterator.hasNext();) {
                    IPreferenceNode node = (IPreferenceNode) iterator.next();
                    System.out.println(node.getId());
                    if (node.getId().equals(PreferenceNodeId)) {
                        dialog.showPage(node);
                    }
                }
                dialog.open();
            }
        }

        public void selectionChanged(IAction action, ISelection selection) {
        }

        private Shell getShell() {
            return DialogCheck.getShell();
        }

    }

    class PreferenceDialogWrapper extends PreferenceDialog {
        public PreferenceDialogWrapper(Shell parentShell, PreferenceManager manager) {
            super(parentShell, manager);
            super.setSelectedNodePreference("PreferenceNodeId");// this is added
        }

        public boolean showPage(IPreferenceNode node) {
            return super.showPage(node);
        }

        public IPreferencePage getPage(IPreferenceNode node) {
            if (node == null)
                return null;

            if (node.getPage() == null)
                node.createPage();

            if (node.getPage() == null)
                return null;

            return node.getPage();
        }
    }

    class DialogCheck {
        private DialogCheck() {
        }

        private static VerifyDialog _verifyDialog;

        public static Shell getShell() {
            Shell shell = WorkbenchPlugin.getDefault().getWorkbench()
                    .getActiveWorkbenchWindow().getShell();
            _verifyDialog = new VerifyDialog(shell);
            _verifyDialog.create();
            return _verifyDialog.getShell();
        }

    }

    class VerifyDialog extends TitleAreaDialog {
        public VerifyDialog(Shell parent) {
            super(parent);
        }
    }


    其實eclipse提供了這樣的API: See the TS2 Method:
    Just two line codes. :(

    posted on 2008-05-23 10:52 Daniel 閱讀(689) 評論(0)  編輯  收藏 所屬分類: Eclipse的相關
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 又黄又爽一线毛片免费观看| 国产免费人成视频在线观看| 国产国拍亚洲精品mv在线观看| 黄色网页免费观看| 免费人成年激情视频在线观看 | 亚洲免费闲人蜜桃| 日本成年免费网站| 亚洲视频无码高清在线| 成年女人免费v片| 亚洲av中文无码字幕色不卡| 国产成人精品男人免费| 国产亚洲美女精品久久久久| 亚洲精品一级无码鲁丝片| 中国内地毛片免费高清| 亚洲爱情岛论坛永久| 国产成人精品免费午夜app| 四虎必出精品亚洲高清| www国产亚洲精品久久久| 两个人看的www免费高清| 久久亚洲日韩看片无码| 一个人免费观看视频www| 亚洲精品色在线网站| 亚洲日本va中文字幕久久| 精品无码国产污污污免费网站| 亚洲六月丁香六月婷婷色伊人| 日日夜夜精品免费视频| 99在线视频免费观看| 亚洲伊人色一综合网| 亚洲?v女人的天堂在线观看| 七色永久性tv网站免费看| 亚洲精品免费网站| 亚洲中文字幕在线观看| 无码国产精品一区二区免费式直播 | 亚洲国产AV无码专区亚洲AV| 国产精品免费观看| 立即播放免费毛片一级| 亚洲精品天天影视综合网| 日本免费人成黄页网观看视频| 中文字幕免费在线看电影大全| 亚洲一区二区三区免费观看| 亚洲国产综合久久天堂|