Search in sources :

Example 41 with ArrayContentProvider

use of org.eclipse.jface.viewers.ArrayContentProvider in project yamcs-studio by yamcs.

the class PropertyDataLabelProvider method createPropertiesViewer.

private TableViewer createPropertiesViewer(Composite parent) {
    TableViewer viewer = new TableViewer(parent, SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);
    TableViewerColumn tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Property");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(150);
    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Value");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(200);
    EditingSupport editingSupport = new PropertyDataEditingSupport(viewer, viewer.getTable());
    tvColumn.setEditingSupport(editingSupport);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new PropertyDataLabelProvider());
    viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    return viewer;
}
Also used : ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) GridData(org.eclipse.swt.layout.GridData) EditingSupport(org.eclipse.jface.viewers.EditingSupport) TableViewer(org.eclipse.jface.viewers.TableViewer) TableViewerColumn(org.eclipse.jface.viewers.TableViewerColumn)

Example 42 with ArrayContentProvider

use of org.eclipse.jface.viewers.ArrayContentProvider in project translationstudio8 by heartsome.

the class ProjectSettingLanguagePage method createContents.

/**
	 * Create contents of the preference page.
	 * @param parent
	 */
@Override
public Control createContents(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout(1, false));
    // source language control
    Group sourceLanguageGrp = new Group(container, SWT.NONE);
    sourceLanguageGrp.setLayout(new GridLayout(1, false));
    sourceLanguageGrp.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    sourceLanguageGrp.setText(Messages.getString("projectsetting.ProjectSettingLanguagePage.sourceLanguageGrp"));
    srcLangComboViewer = new TableComboViewer(sourceLanguageGrp, SWT.READ_ONLY | SWT.BORDER);
    TableCombo tableCombo = srcLangComboViewer.getTableCombo();
    // set options.
    tableCombo.setShowTableLines(false);
    tableCombo.setShowTableHeader(false);
    tableCombo.setDisplayColumnIndex(-1);
    tableCombo.setShowImageWithinSelection(true);
    tableCombo.setShowColorWithinSelection(false);
    tableCombo.setShowFontWithinSelection(false);
    tableCombo.setVisibleItemCount(20);
    srcLangComboViewer.getTableCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    srcLangComboViewer.setLabelProvider(new LanguageLabelProvider());
    srcLangComboViewer.setContentProvider(new ArrayContentProvider());
    srcLangComboViewer.setInput(languages);
    srcLangComboViewer.setComparer(elementComparer);
    initDataBindings();
    // end source language
    // target language control
    Group targetLanguageGrp = new Group(container, SWT.NONE);
    targetLanguageGrp.setLayout(new GridLayout(3, false));
    targetLanguageGrp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1));
    targetLanguageGrp.setText(Messages.getString("projectsetting.ProjectSettingLanguagePage.targetLanguageGrp"));
    targetLangControl.createControl(targetLanguageGrp);
    parent.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    return container;
}
Also used : Group(org.eclipse.swt.widgets.Group) GridLayout(org.eclipse.swt.layout.GridLayout) Composite(org.eclipse.swt.widgets.Composite) LanguageLabelProvider(net.heartsome.cat.ts.ui.composite.LanguageLabelProvider) GridData(org.eclipse.swt.layout.GridData) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) TableCombo(org.eclipse.nebula.widgets.tablecombo.TableCombo) TableComboViewer(org.eclipse.nebula.jface.tablecomboviewer.TableComboViewer)

Example 43 with ArrayContentProvider

use of org.eclipse.jface.viewers.ArrayContentProvider in project translationstudio8 by heartsome.

the class PluginConfigurationDialog method createDialogArea.

@Override
protected Control createDialogArea(Composite parent) {
    Composite tparent = (Composite) super.createDialogArea(parent);
    GridDataFactory.fillDefaults().hint(500, 400).minSize(500, 400).applyTo(tparent);
    tableViewer = new TableViewer(tparent, SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI);
    table = tableViewer.getTable();
    table.setLinesVisible(true);
    table.setHeaderVisible(true);
    GridDataFactory.fillDefaults().span(4, SWT.DEFAULT).grab(true, true).applyTo(table);
    tableViewer.setLabelProvider(new TViewerLabelProvider());
    tableViewer.setContentProvider(new ArrayContentProvider());
    String[] columnNames = new String[] { Messages.getString("dialog.PluginConfigurationDialog.columnNames1"), Messages.getString("dialog.PluginConfigurationDialog.columnNames2"), Messages.getString("dialog.PluginConfigurationDialog.columnNames3"), Messages.getString("dialog.PluginConfigurationDialog.columnNames4") };
    int[] columnAlignments = new int[] { SWT.LEFT, SWT.LEFT, SWT.LEFT, SWT.LEFT };
    for (int i = 0; i < columnNames.length; i++) {
        TableColumn tableColumn = new TableColumn(table, columnAlignments[i]);
        tableColumn.setText(columnNames[i]);
        tableColumn.setWidth(50);
    }
    // 让列表列宽动态变化
    table.addListener(SWT.Resize, new Listener() {

        public void handleEvent(Event event) {
            final Table table = ((Table) event.widget);
            final TableColumn[] columns = table.getColumns();
            event.widget.getDisplay().syncExec(new Runnable() {

                public void run() {
                    double[] columnWidths = new double[] { 0.28, 0.28, 0.20, 0.20 };
                    for (int i = 0; i < columns.length; i++) columns[i].setWidth((int) (table.getBounds().width * columnWidths[i]));
                }
            });
        }
    });
    tableViewer.addDoubleClickListener(new IDoubleClickListener() {

        public void doubleClick(DoubleClickEvent event) {
            editPuginConfig();
        }
    });
    refreshTable(null);
    return tparent;
}
Also used : Listener(org.eclipse.swt.widgets.Listener) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) Table(org.eclipse.swt.widgets.Table) Composite(org.eclipse.swt.widgets.Composite) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) TableColumn(org.eclipse.swt.widgets.TableColumn) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) Event(org.eclipse.swt.widgets.Event) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) TableViewer(org.eclipse.jface.viewers.TableViewer)

Example 44 with ArrayContentProvider

use of org.eclipse.jface.viewers.ArrayContentProvider in project translationstudio8 by heartsome.

the class HSFontSettingComposite method createContent.

public void createContent() {
    if (this.title != null && title.length() != 0) {
        Label titleLabel = new Label(this, SWT.NONE);
        titleLabel.setText(title);
        GridData titleLabelGridData = new GridData();
        titleLabelGridData.horizontalSpan = 2;
        titleLabelGridData.horizontalAlignment = GridData.CENTER;
        titleLabel.setLayoutData(titleLabelGridData);
    }
    Label lblFontName = new Label(this, SWT.NONE);
    lblFontName.setText(Messages.getString("HSFontSettingComposite.fontNameLabel"));
    fontNameComboViewer = new ComboViewer(this);
    fontNameComboViewer.setContentProvider(new ArrayContentProvider());
    Combo fontNameCombo = fontNameComboViewer.getCombo();
    GridData fnGd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    fontNameCombo.setLayoutData(fnGd);
    fontNameComboViewer.setInput(getSystemFonts());
    Label lblFontSize = new Label(this, SWT.NONE);
    lblFontSize.setText(Messages.getString("HSFontSettingComposite.fontSizeLabel"));
    fontSizeComboViewer = new ComboViewer(this);
    fontSizeComboViewer.setContentProvider(new ArrayContentProvider());
    Combo fontSize = fontSizeComboViewer.getCombo();
    fontSize.setLayoutData(fnGd);
    fontSizeComboViewer.setInput(new Integer[] { 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 });
    Label lblFontPreview = new Label(this, SWT.None);
    lblFontPreview.setText(Messages.getString("HSFontSettingComposite.fontPreViewLabel"));
    previewFontText = new Label(this, SWT.READ_ONLY | SWT.BORDER);
    previewFontText.setText("abcdefg ABCDEFG");
    GridData previewFontTextGridData = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    previewFontTextGridData.heightHint = 50;
    previewFontText.setLayoutData(previewFontTextGridData);
    fontNameComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            String strFontName = fontNameComboViewer.getCombo().getText();
            String intFontSize = fontSizeComboViewer.getCombo().getText();
            if (strFontName == null || intFontSize == null || strFontName.length() == 0 || intFontSize.length() == 0) {
                return;
            }
            FontData fd = JFaceResources.getDefaultFont().getFontData()[0];
            fd.setName(strFontName);
            fd.setHeight(Integer.parseInt(intFontSize));
            if (previewFont != null && !previewFont.isDisposed()) {
                previewFont.dispose();
            }
            previewFont = new Font(Display.getDefault(), fd);
            previewFontText.setFont(previewFont);
        }
    });
    fontSizeComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            String strFontName = fontNameComboViewer.getCombo().getText();
            String intFontSize = fontSizeComboViewer.getCombo().getText();
            if (strFontName == null || intFontSize == null || strFontName.length() == 0 || intFontSize.length() == 0) {
                return;
            }
            FontData fd = JFaceResources.getDefaultFont().getFontData()[0];
            fd.setName(strFontName);
            fd.setHeight(Integer.parseInt(intFontSize));
            if (previewFont != null && !previewFont.isDisposed()) {
                previewFont.dispose();
            }
            previewFont = new Font(Display.getDefault(), fd);
            previewFontText.setFont(previewFont);
        }
    });
}
Also used : ComboViewer(org.eclipse.jface.viewers.ComboViewer) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) FontData(org.eclipse.swt.graphics.FontData) Label(org.eclipse.swt.widgets.Label) GridData(org.eclipse.swt.layout.GridData) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) Combo(org.eclipse.swt.widgets.Combo) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) Font(org.eclipse.swt.graphics.Font)

Example 45 with ArrayContentProvider

use of org.eclipse.jface.viewers.ArrayContentProvider in project translationstudio8 by heartsome.

the class ExportTmxDialog method createDialogArea.

/**
	 * Create contents of the dialog.
	 * @param parent
	 */
@Override
protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    container.setLayout(new GridLayout(1, false));
    Group dbListGroup = new Group(container, SWT.NONE);
    GridLayout glDbListGroup = new GridLayout(2, false);
    glDbListGroup.horizontalSpacing = 0;
    glDbListGroup.marginHeight = 0;
    glDbListGroup.marginWidth = 0;
    dbListGroup.setLayout(glDbListGroup);
    dbListGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    dbListGroup.setText(Messages.getString("dialog.ExportTmxDialog.dbListGroup"));
    Composite leftComposite = new Composite(dbListGroup, SWT.NONE);
    GridLayout glLeftComposite = new GridLayout(1, false);
    glLeftComposite.verticalSpacing = 0;
    glLeftComposite.marginHeight = 0;
    leftComposite.setLayout(glLeftComposite);
    leftComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    // 列表和语言设置
    Composite dbListComposite = new Composite(leftComposite, SWT.NONE);
    GridLayout glTopLeftComposite = new GridLayout(1, false);
    glTopLeftComposite.marginHeight = 0;
    glTopLeftComposite.marginWidth = 0;
    dbListComposite.setLayout(glTopLeftComposite);
    dbListComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    dbListViewer = new TableViewer(dbListComposite, SWT.BORDER | SWT.FULL_SELECTION);
    Table table = dbListViewer.getTable();
    GridData gd_table = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
    gd_table.heightHint = 100;
    table.setLayoutData(gd_table);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    dbListViewer.setContentProvider(new ArrayContentProvider());
    dbListViewer.setInput(dbList);
    createColumn(dbListViewer);
    dbListViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            currentDatabase = (ExportDatabaseBean) selection.getFirstElement();
            loadData();
        }
    });
    Composite langSetComposite = new Composite(leftComposite, SWT.NONE);
    GridLayout gl_langSetComposite = new GridLayout(2, false);
    gl_langSetComposite.marginWidth = 0;
    langSetComposite.setLayout(gl_langSetComposite);
    langSetComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
    Label langSelLabel = new Label(langSetComposite, SWT.NONE);
    langSelLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    langSelLabel.setText(Messages.getString("dialog.ExportTmxDialog.langSelLabel"));
    hasSelLangListViewer = new ListViewer(langSetComposite, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI);
    org.eclipse.swt.widgets.List list = hasSelLangListViewer.getList();
    GridData glLangList = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    glLangList.heightHint = 76;
    list.setLayoutData(glLangList);
    hasSelLangListViewer.setContentProvider(new ArrayContentProvider());
    hasSelLangListViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @SuppressWarnings("unchecked")
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();
            if (sel.isEmpty()) {
                return;
            }
            if (currentDatabase != null) {
                currentDatabase.getHasSelectedLangs().clear();
                currentDatabase.getHasSelectedLangs().addAll(sel.toList());
                List<String> canSelSrcLangs = new ArrayList<String>();
                canSelSrcLangs.add("*all*");
                canSelSrcLangs.addAll(sel.toList());
                currentDatabase.setCanSelSrcLangs(canSelSrcLangs);
                srcLangcomboViewer.setInput(canSelSrcLangs);
                if (canSelSrcLangs.contains(currentDatabase.getSrcLang())) {
                    String srcLang = currentDatabase.getSrcLang();
                    if (srcLang != null && !srcLang.equals("")) {
                        for (int i = 0; i < canSelSrcLangs.size(); i++) {
                            if (canSelSrcLangs.get(i).equals(srcLang)) {
                                srcLangcomboViewer.getCombo().select(i);
                                break;
                            }
                        }
                    }
                } else {
                    srcLangcomboViewer.getCombo().select(0);
                }
            }
        }
    });
    Label srcLangSelLabel = new Label(langSetComposite, SWT.NONE);
    srcLangSelLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    srcLangSelLabel.setBounds(0, 0, 79, 19);
    srcLangSelLabel.setText(Messages.getString("dialog.ExportTmxDialog.srcLangSelLabel"));
    srcLangcomboViewer = new ComboViewer(langSetComposite, SWT.NONE | SWT.READ_ONLY);
    Combo combo = srcLangcomboViewer.getCombo();
    GridData gd_combo = new GridData(SWT.LEFT, SWT.CENTER, true, false, 1, 1);
    gd_combo.widthHint = 197;
    combo.setLayoutData(gd_combo);
    srcLangcomboViewer.setContentProvider(new ArrayContentProvider());
    srcLangcomboViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();
            if (sel.isEmpty()) {
                return;
            }
            if (currentDatabase != null) {
                currentDatabase.setSrcLang((String) sel.getFirstElement());
            }
        }
    });
    // 操作库列的按钮区域
    Composite rightComposite = new Composite(dbListGroup, SWT.NONE);
    GridLayout gl_rightComposite = new GridLayout(1, false);
    gl_rightComposite.marginRight = 5;
    gl_rightComposite.marginHeight = 0;
    gl_rightComposite.marginWidth = 0;
    rightComposite.setLayout(gl_rightComposite);
    rightComposite.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
    HSDropDownButton addDbBtn = new HSDropDownButton(rightComposite, SWT.None);
    addDbBtn.setBounds(0, 0, 104, 31);
    addDbBtn.setText(Messages.getString("dialog.ExportTmxDialog.AddDbBtn"));
    Menu menu = addDbBtn.getMenu();
    MenuItem fileItem = new MenuItem(menu, SWT.PUSH);
    fileItem.setText(Messages.getString("tm.dialog.addTm.DropDownButton.AddFileTm"));
    fileItem.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            FileDialog fileDialg = new FileDialog(getShell());
            fileDialg.setFilterExtensions(new String[] { "*.hstm", "*.*" });
            String result = fileDialg.open();
            if (result == null) {
                return;
            }
            File f = new File(result);
            if (!f.exists()) {
                return;
            }
            Map<DatabaseModelBean, String> r = null;
            try {
                r = Utils.convertFile2TmModel(f, true);
            } catch (Exception e1) {
                MessageDialog.openError(getShell(), Messages.getString("tm.dialog.addFileTm.errorTitle"), e1.getMessage());
            }
            if (r == null) {
                return;
            }
            Iterator<DatabaseModelBean> it = r.keySet().iterator();
            if (it.hasNext()) {
                DatabaseModelBean selectedVal = it.next();
                ExportDatabaseBean bean = new ExportDatabaseBean(selectedVal.toDbMetaData(), r.get(selectedVal));
                if (!dbList.contains(bean)) {
                    // 实现: 重写equals方法
                    dbList.add(bean);
                    bean.setIndex(dbList.size() + "");
                }
                dbListViewer.getTable().removeAll();
                dbListViewer.setInput(dbList);
                if (dbList.size() != 0) {
                    deleteDbBtn.setEnabled(true);
                    browserBtn.setEnabled(true);
                    selectCurrentDb(currentDatabase);
                } else {
                    deleteDbBtn.setEnabled(false);
                    browserBtn.setEnabled(false);
                }
            }
        }
    });
    MenuItem serverItem = new MenuItem(menu, SWT.PUSH);
    serverItem.setText(Messages.getString("tm.dialog.addTm.DropDownButton.AddServerTm"));
    serverItem.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            TmDbManagerDialog dialog = new TmDbManagerDialog(getShell());
            dialog.setDialogUseFor(TmDbManagerDialog.TYPE_DBSELECTED);
            if (dialog.open() == Window.OK) {
                Map<DatabaseModelBean, String> selDb = dialog.getHasSelectedDatabase();
                Iterator<Entry<DatabaseModelBean, String>> entryIt = selDb.entrySet().iterator();
                while (entryIt.hasNext()) {
                    Entry<DatabaseModelBean, String> entry = entryIt.next();
                    ExportDatabaseBean bean = new ExportDatabaseBean(entry.getKey().toDbMetaData(), entry.getValue());
                    if (!dbList.contains(bean)) {
                        // 实现: 重写equals方法
                        dbList.add(bean);
                        bean.setIndex(dbList.size() + "");
                    }
                }
                dbListViewer.getTable().removeAll();
                dbListViewer.setInput(dbList);
            }
            if (dbList.size() != 0) {
                deleteDbBtn.setEnabled(true);
                browserBtn.setEnabled(true);
                selectCurrentDb(currentDatabase);
            } else {
                deleteDbBtn.setEnabled(false);
                browserBtn.setEnabled(false);
            }
        }
    });
    deleteDbBtn = new Button(rightComposite, SWT.NONE);
    deleteDbBtn.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
    deleteDbBtn.setBounds(0, 0, 104, 31);
    deleteDbBtn.setText(Messages.getString("dialog.ExportTmxDialog.deleteDbBtn"));
    deleteDbBtn.setEnabled(false);
    deleteDbBtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = (IStructuredSelection) dbListViewer.getSelection();
            if (sel.isEmpty()) {
                MessageDialog.openInformation(getShell(), Messages.getString("dialog.ExportTmxDialog.msgTitle"), Messages.getString("dialog.ExportTmxDialog.msg1"));
                return;
            }
            dbList.removeAll(sel.toList());
            dbListViewer.remove(sel.toArray());
            if (dbList.size() != 0) {
                deleteDbBtn.setEnabled(true);
                browserBtn.setEnabled(true);
                selectCurrentDb(currentDatabase);
            } else {
                currentDatabase = null;
                deleteDbBtn.setEnabled(false);
                browserBtn.setEnabled(false);
            }
        }
    });
    // 过虑规则
    Composite filterSetComposite = new Composite(container, SWT.NONE);
    GridLayout glFilterSetComposite = new GridLayout(4, false);
    glFilterSetComposite.marginWidth = 0;
    glFilterSetComposite.marginHeight = 0;
    filterSetComposite.setLayout(glFilterSetComposite);
    filterSetComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    hasfilterCbtn = new Button(filterSetComposite, SWT.CHECK);
    hasfilterCbtn.setText(Messages.getString("dialog.ExportTmxDialog.hasfilterCbtn"));
    hasfilterCbtn.setSelection(false);
    hasfilterCbtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            // TODO 实现选择改变
            filterComboViewer.getCombo().setEnabled(hasfilterCbtn.getSelection());
            filterSetBtn.setEnabled(hasfilterCbtn.getSelection());
            deleteFilterBtn.setEnabled(hasfilterCbtn.getSelection());
        }
    });
    filterComboViewer = new ComboViewer(filterSetComposite, SWT.NONE);
    Combo filterCombo = filterComboViewer.getCombo();
    filterCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    filterCombo.setEnabled(hasfilterCbtn.getSelection());
    filterComboViewer.setContentProvider(new ArrayContentProvider());
    filterComboViewer.setLabelProvider(new FilterLabelProvider());
    filterComboViewer.setInput(filterList);
    // 有一个空的过滤器
    filterCombo.select(0);
    filterSetBtn = new Button(filterSetComposite, SWT.NONE);
    filterSetBtn.setText(Messages.getString("dialog.ExportTmxDialog.filterSetBtn"));
    filterSetBtn.setEnabled(hasfilterCbtn.getSelection());
    filterSetBtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = (IStructuredSelection) filterComboViewer.getSelection();
            ExportFilterBean bean = (ExportFilterBean) sel.getFirstElement();
            if (bean.equals(filterList.get(0))) {
                // 0位置的始终存在 Empty
                // 新建
                filterSetting(null);
            } else {
                // 编辑
                filterSetting(bean);
            }
        }
    });
    deleteFilterBtn = new Button(filterSetComposite, SWT.NONE);
    deleteFilterBtn.setText(Messages.getString("dialog.ExportTmxDialog.deleteFilterBtn"));
    deleteFilterBtn.setEnabled(hasfilterCbtn.getSelection());
    deleteFilterBtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = (IStructuredSelection) filterComboViewer.getSelection();
            ExportFilterBean bean = (ExportFilterBean) sel.getFirstElement();
            if (bean.equals(filterList.get(0))) {
                // 总是存在一个空的filter,显示为"无"
                return;
            }
            if (MessageDialog.openConfirm(getShell(), Messages.getString("dialog.ExportTmxDialog.msgTitle"), Messages.getString("dialog.ExportTmxDialog.msg2"))) {
                filterStore.deleteFilterRuleByName(bean.getFilterName(), "TMX");
                int i = filterList.indexOf(bean);
                filterList.remove(i);
                filterComboViewer.setInput(filterList);
                filterComboViewer.getCombo().select(0);
            }
        }
    });
    isTopLevelTmxCbtn = new Button(container, SWT.CHECK);
    isTopLevelTmxCbtn.setText(Messages.getString("dialog.ExportTmxDialog.isTopLevelTmxCbtn"));
    isTopLevelTmxCbtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            boolean temp = isTopLevelTmxCbtn.getSelection();
            if (temp) {
                isTagCbtn.setSelection(false);
                isTagCbtn.setEnabled(false);
            } else {
                isTagCbtn.setEnabled(true);
            }
        }
    });
    isTagCbtn = new Button(container, SWT.CHECK);
    isTagCbtn.setText(Messages.getString("dialog.ExportTmxDialog.isTagCbtn"));
    isTagCbtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            boolean temp = isTagCbtn.getSelection();
            if (temp) {
                isTopLevelTmxCbtn.setSelection(false);
                isTopLevelTmxCbtn.setEnabled(false);
            } else {
                isTopLevelTmxCbtn.setEnabled(true);
            }
        }
    });
    isTopLevelTmxCbtn.setSelection(true);
    isTagCbtn.setEnabled(false);
    Composite encodingComposite = new Composite(container, SWT.NONE);
    GridLayout glEncodingComposite = new GridLayout(2, false);
    glEncodingComposite.marginWidth = 0;
    glEncodingComposite.marginHeight = 0;
    encodingComposite.setLayout(glEncodingComposite);
    encodingComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    hasChangedCodingCbtn = new Button(encodingComposite, SWT.CHECK);
    hasChangedCodingCbtn.setText(Messages.getString("dialog.ExportTmxDialog.hasChangedCodingCbtn"));
    hasChangedCodingCbtn.setSelection(false);
    hasChangedCodingCbtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            encodingComboViewer.getCombo().setEnabled(hasChangedCodingCbtn.getSelection());
        }
    });
    encodingComboViewer = new ComboViewer(encodingComposite, SWT.NONE | SWT.READ_ONLY);
    Combo encodingCombo = encodingComboViewer.getCombo();
    GridData gdEncodingCombo = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
    gdEncodingCombo.widthHint = 279;
    encodingCombo.setLayoutData(gdEncodingCombo);
    encodingCombo.setEnabled(hasChangedCodingCbtn.getSelection());
    encodingComboViewer.setContentProvider(new ArrayContentProvider());
    encodingComboViewer.setInput(pageCodes);
    Composite tmxFileSetComposite = new Composite(container, SWT.NONE);
    GridLayout glTmxFileSetComposite = new GridLayout(3, false);
    glTmxFileSetComposite.marginWidth = 0;
    glTmxFileSetComposite.marginHeight = 0;
    tmxFileSetComposite.setLayout(glTmxFileSetComposite);
    tmxFileSetComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    Label tmxFileLabel = new Label(tmxFileSetComposite, SWT.NONE);
    tmxFileLabel.setText(Messages.getString("dialog.ExportTmxDialog.tmxFileLabel"));
    tmxFileText = new Text(tmxFileSetComposite, SWT.BORDER);
    tmxFileText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    tmxFileText.setEnabled(false);
    browserBtn = new Button(tmxFileSetComposite, SWT.NONE);
    browserBtn.setText(Messages.getString("dialog.ExportTmxDialog.browserBtn"));
    browserBtn.setEnabled(false);
    browserBtn.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            if (dbList.size() > 1) {
                DirectoryDialog dlg = new DirectoryDialog(getParentShell());
                String filePath = dlg.open();
                if (filePath != null) {
                    tmxFileText.setText(filePath);
                }
            } else {
                FileDialog dlg = new FileDialog(getShell(), SWT.SAVE);
                String[] filterExt = { "*.tmx" };
                dlg.setFilterExtensions(filterExt);
                String filePath = dlg.open();
                if (filePath != null) {
                    tmxFileText.setText(filePath);
                }
            }
        }
    });
    return container;
}
Also used : Group(org.eclipse.swt.widgets.Group) DatabaseModelBean(net.heartsome.cat.common.bean.DatabaseModelBean) Label(org.eclipse.swt.widgets.Label) SelectionChangedEvent(org.eclipse.jface.viewers.SelectionChangedEvent) Combo(org.eclipse.swt.widgets.Combo) ExportFilterBean(net.heartsome.cat.database.bean.ExportFilterBean) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) ExportDatabaseBean(net.heartsome.cat.database.bean.ExportDatabaseBean) GridLayout(org.eclipse.swt.layout.GridLayout) Entry(java.util.Map.Entry) HSDropDownButton(net.heartsome.cat.common.ui.HSDropDownButton) Button(org.eclipse.swt.widgets.Button) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Iterator(java.util.Iterator) List(java.util.List) ArrayList(java.util.ArrayList) Menu(org.eclipse.swt.widgets.Menu) DirectoryDialog(org.eclipse.swt.widgets.DirectoryDialog) ListViewer(org.eclipse.jface.viewers.ListViewer) HSDropDownButton(net.heartsome.cat.common.ui.HSDropDownButton) Table(org.eclipse.swt.widgets.Table) Composite(org.eclipse.swt.widgets.Composite) ISelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) MenuItem(org.eclipse.swt.widgets.MenuItem) Text(org.eclipse.swt.widgets.Text) ComboViewer(org.eclipse.jface.viewers.ComboViewer) GridData(org.eclipse.swt.layout.GridData) ArrayContentProvider(org.eclipse.jface.viewers.ArrayContentProvider) TableViewer(org.eclipse.jface.viewers.TableViewer) FileDialog(org.eclipse.swt.widgets.FileDialog) File(java.io.File) Map(java.util.Map)

Aggregations

ArrayContentProvider (org.eclipse.jface.viewers.ArrayContentProvider)92 GridData (org.eclipse.swt.layout.GridData)67 Composite (org.eclipse.swt.widgets.Composite)59 TableViewer (org.eclipse.jface.viewers.TableViewer)56 SelectionEvent (org.eclipse.swt.events.SelectionEvent)45 Table (org.eclipse.swt.widgets.Table)43 GridLayout (org.eclipse.swt.layout.GridLayout)41 Button (org.eclipse.swt.widgets.Button)37 Label (org.eclipse.swt.widgets.Label)36 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)32 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)32 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)30 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)30 Group (org.eclipse.swt.widgets.Group)23 ComboViewer (org.eclipse.jface.viewers.ComboViewer)21 TableColumn (org.eclipse.swt.widgets.TableColumn)21 LabelProvider (org.eclipse.jface.viewers.LabelProvider)19 Combo (org.eclipse.swt.widgets.Combo)19 Text (org.eclipse.swt.widgets.Text)19 Point (org.eclipse.swt.graphics.Point)18