<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)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲人成未满十八禁网站| 亚洲精品在线播放| 免费人成网站永久| 日韩毛片无码永久免费看| 亚洲人成网站在线播放2019| 最近中文字幕mv免费高清视频7| 国产亚洲美女精品久久| 无人在线观看免费高清视频| 亚洲成人免费电影| 成人A级毛片免费观看AV网站| 国产网站在线免费观看| 国产精品亚洲色婷婷99久久精品| 亚洲精品黄色视频在线观看免费资源| 亚欧免费无码aⅴ在线观看| 日本红怡院亚洲红怡院最新| a毛片免费观看完整| 亚洲一区二区影院| 91免费精品国自产拍在线不卡| 亚洲欧洲精品成人久久曰影片| 亚洲熟妇av一区| 无码人妻一区二区三区免费| 亚洲国产精品无码久久98| 免费一级毛片在播放视频| av成人免费电影| 亚洲美女视频网址| 国产色爽女小说免费看| 特黄特色的大片观看免费视频| 毛片a级毛片免费播放下载| 亚洲av乱码中文一区二区三区| 毛片网站免费在线观看| 视频免费1区二区三区| 亚洲精品二区国产综合野狼| 午夜免费1000部| 男人扒开添女人下部免费视频| 免费无码精品黄AV电影| 亚洲国产成人精品无码区二本| 午夜国产精品免费观看 | 久久久久国色av免费看| 亚洲妓女综合网99| 亚洲一区日韩高清中文字幕亚洲| 国产精品久久久久久亚洲小说 |