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

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲国产国产综合一区首页| 国产伦精品一区二区三区免费下载| 亚洲日韩av无码| 精品熟女少妇aⅴ免费久久| 亚洲日韩在线第一页| 91精品成人免费国产| 亚洲人成在线影院| 18国产精品白浆在线观看免费 | 亚洲精品高清一二区久久| 免费人妻精品一区二区三区| 亚洲日本中文字幕一区二区三区 | 在线观看成人免费视频不卡| 亚洲人6666成人观看| 在线jlzzjlzz免费播放| 瑟瑟网站免费网站入口| 国内精品99亚洲免费高清| 黄色片免费在线观看| 亚洲欧洲精品久久| 四色在线精品免费观看| 青青久久精品国产免费看| 亚洲乱码国产乱码精品精| 成人午夜免费福利视频| 亚洲爆乳少妇无码激情| 亚洲国产婷婷香蕉久久久久久| a级日本高清免费看| 亚洲国产亚洲片在线观看播放| 好吊妞998视频免费观看在线| 真人无码作爱免费视频| 亚洲人成色777777在线观看 | 成人激情免费视频| 国产成人高清精品免费观看| 亚洲va在线va天堂va888www| 啦啦啦高清视频在线观看免费| 黄色免费在线网址| 亚洲成AV人综合在线观看| www.亚洲色图| 亚洲免费人成视频观看| 久久精品国产亚洲av天美18| 亚洲精品成人无限看| 免费看www视频| 97久久免费视频|