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

    隨筆檔案

    文章分類

    文章檔案

    相冊

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 亚洲国产综合精品中文第一区| 亚洲免费在线视频观看| 看免费毛片天天看| 啦啦啦手机完整免费高清观看| 亚洲国产中文在线视频| 69堂人成无码免费视频果冻传媒| 成年人免费视频观看| 亚洲国产精品久久久天堂 | 亚洲AV电影院在线观看| 一级有奶水毛片免费看| 在线观看av永久免费| 国产精品亚洲精品观看不卡| eeuss影院免费直达入口| 中文字幕影片免费在线观看| 国产成人精品日本亚洲网址| 成人免费午夜视频| 老司机午夜在线视频免费| 亚洲精品岛国片在线观看| 亚洲va精品中文字幕| 国产精品成人无码免费| 亚洲综合综合在线| 高清国语自产拍免费视频国产| 噜噜噜亚洲色成人网站∨| 黄色片在线免费观看| 亚洲乱亚洲乱淫久久| 毛片免费全部免费观看| 精品久久亚洲一级α| 亚洲永久无码3D动漫一区| 91av视频免费在线观看| 亚洲AV综合色区无码另类小说| 草久免费在线观看网站| 国产小视频在线免费| 免费人成在线观看视频高潮| 亚洲欧洲日产v特级毛片| 免费污视频在线观看| 国产亚洲综合一区柠檬导航| 最近高清中文字幕无吗免费看| 久久人午夜亚洲精品无码区| 亚洲不卡av不卡一区二区| 成人au免费视频影院| a级毛片无码免费真人久久|