<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 閱讀(696) 評論(0)  編輯  收藏 所屬分類: Eclipse的相關
    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 国产高清在线免费视频| 亚洲a级在线观看| 嫩草成人永久免费观看| 2021国产精品成人免费视频| 日本亚洲色大成网站www久久| 91精品国产免费久久国语蜜臀| 久久精品亚洲男人的天堂| 日本高清不卡aⅴ免费网站| 国产精品亚洲精品青青青| 黄色成人免费网站| 深夜特黄a级毛片免费播放| 免费无码AV电影在线观看| 久久亚洲AV无码精品色午夜麻豆| 中文在线免费观看| 亚洲伊人成无码综合网| 香蕉视频在线观看免费| 国产精品久免费的黄网站 | 国产特黄一级一片免费| 日韩精品一区二区亚洲AV观看| 国产又大又黑又粗免费视频| 57pao一国产成永久免费 | 久久综合九九亚洲一区| 伊人久久大香线蕉免费视频| 亚洲天堂一区二区三区四区| 亚洲国产精品一区二区九九| 国产亚洲精aa成人网站| 久久经典免费视频| 亚洲白色白色永久观看| 四虎免费久久影院| 亚洲av无码无线在线观看 | 中国china体内裑精亚洲日本| 全部免费a级毛片| 国产精品成人免费福利| 中文字幕不卡免费视频| 成人精品国产亚洲欧洲| 深夜国产福利99亚洲视频| 特级毛片aaaa免费观看| 亚洲91精品麻豆国产系列在线| 国产亚洲欧洲精品| 久久精品国产精品亚洲| 成人A级毛片免费观看AV网站|