Search in sources :

Example 6 with KeyEvent

use of org.eclipse.swt.events.KeyEvent in project translationstudio8 by heartsome.

the class NatCombo method createTextControl.

private void createTextControl() {
    text = new Text(this, HorizontalAlignmentEnum.getSWTStyle(cellStyle));
    text.setBackground(cellStyle.getAttributeValue(CellStyleAttributes.BACKGROUND_COLOR));
    text.setForeground(cellStyle.getAttributeValue(CellStyleAttributes.FOREGROUND_COLOR));
    text.setFont(cellStyle.getAttributeValue(CellStyleAttributes.FONT));
    GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
    text.setLayoutData(gridData);
    text.forceFocus();
    text.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent event) {
            if (event.keyCode == SWT.ARROW_DOWN || event.keyCode == SWT.ARROW_UP) {
                showDropdownControl();
                int selectionIndex = dropdownList.getSelectionIndex();
                selectionIndex += event.keyCode == SWT.ARROW_DOWN ? 1 : -1;
                if (selectionIndex < 0) {
                    selectionIndex = 0;
                }
                dropdownList.select(selectionIndex);
                text.setText(dropdownList.getSelection()[0]);
            }
        }
    });
    iconImage = GUIHelper.getImage("down_2");
    final Canvas iconCanvas = new Canvas(this, SWT.NONE) {

        @Override
        public Point computeSize(int wHint, int hHint, boolean changed) {
            Rectangle iconImageBounds = iconImage.getBounds();
            return new Point(iconImageBounds.width + 2, iconImageBounds.height + 2);
        }
    };
    gridData = new GridData(GridData.BEGINNING, SWT.FILL, false, true);
    iconCanvas.setLayoutData(gridData);
    iconCanvas.addPaintListener(new PaintListener() {

        public void paintControl(PaintEvent event) {
            GC gc = event.gc;
            Rectangle iconCanvasBounds = iconCanvas.getBounds();
            Rectangle iconImageBounds = iconImage.getBounds();
            int horizontalAlignmentPadding = CellStyleUtil.getHorizontalAlignmentPadding(HorizontalAlignmentEnum.CENTER, iconCanvasBounds, iconImageBounds.width);
            int verticalAlignmentPadding = CellStyleUtil.getVerticalAlignmentPadding(VerticalAlignmentEnum.MIDDLE, iconCanvasBounds, iconImageBounds.height);
            gc.drawImage(iconImage, horizontalAlignmentPadding, verticalAlignmentPadding);
            Color originalFg = gc.getForeground();
            gc.setForeground(GUIHelper.COLOR_WIDGET_BORDER);
            gc.drawRectangle(0, 0, iconCanvasBounds.width - 1, iconCanvasBounds.height - 1);
            gc.setForeground(originalFg);
        }
    });
    iconCanvas.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDown(MouseEvent e) {
            showDropdownControl();
        }
    });
}
Also used : PaintEvent(org.eclipse.swt.events.PaintEvent) MouseEvent(org.eclipse.swt.events.MouseEvent) PaintListener(org.eclipse.swt.events.PaintListener) KeyAdapter(org.eclipse.swt.events.KeyAdapter) Canvas(org.eclipse.swt.widgets.Canvas) Color(org.eclipse.swt.graphics.Color) Rectangle(org.eclipse.swt.graphics.Rectangle) MouseAdapter(org.eclipse.swt.events.MouseAdapter) Text(org.eclipse.swt.widgets.Text) Point(org.eclipse.swt.graphics.Point) KeyEvent(org.eclipse.swt.events.KeyEvent) GridData(org.eclipse.swt.layout.GridData) GC(org.eclipse.swt.graphics.GC)

Example 7 with KeyEvent

use of org.eclipse.swt.events.KeyEvent in project translationstudio8 by heartsome.

the class ConcordanceSearchDialog method initListener.

/**
	 * 初始化各控件的监听 ;
	 */
private void initListener() {
    btnSearch.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            initGroupIdAndSearch();
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    cmbSearch.addKeyListener(new KeyListener() {

        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.CR) {
                initGroupIdAndSearch();
            }
        }

        public void keyReleased(KeyEvent e) {
        }
    });
    btnFirst.addSelectionListener(new SelectionListener() {

        public void widgetSelected(SelectionEvent e) {
            if (curPageNum > 0 && amountPage > 0) {
                curPageNum = 1;
                if (search()) {
                    refreshPageNumText();
                }
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });
    btnPre.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            if (curPageNum > 0) {
                curPageNum--;
                if (search()) {
                    refreshPageNumText();
                }
            }
        }
    });
    btnNext.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            if (curPageNum < amountPage) {
                curPageNum++;
                if (search()) {
                    refreshPageNumText();
                }
            }
        }
    });
    btnLast.addSelectionListener(new SelectionListener() {

        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            if (curPageNum > 0 && amountPage > 0) {
                curPageNum = amountPage;
                if (search()) {
                    refreshPageNumText();
                }
            }
        }
    });
    txtPage.addKeyListener(new KeyListener() {

        public void keyReleased(KeyEvent e) {
        }

        public void keyPressed(KeyEvent e) {
            if (e.character == SWT.CR) {
                String pageNum = txtPage.getText();
                try {
                    curPageNum = Integer.parseInt(pageNum);
                } catch (NumberFormatException e1) {
                    // LOGGER.error("NumberFormatException", e1);
                    txtPage.setText(String.valueOf(curPageNum) + splitPageSeparator + amountPage);
                    return;
                }
                if (curPageNum > amountPage) {
                    curPageNum = amountPage;
                }
                if (curPageNum < 1) {
                    curPageNum = 1;
                }
                search();
                txtPage.setText(String.valueOf(curPageNum));
            }
        }
    });
    txtPage.addFocusListener(new FocusAdapter() {

        @Override
        public void focusLost(FocusEvent e) {
            refreshPageNumText();
        }

        @Override
        public void focusGained(FocusEvent e) {
            txtPage.setText("");
        }
    });
}
Also used : KeyEvent(org.eclipse.swt.events.KeyEvent) FocusAdapter(org.eclipse.swt.events.FocusAdapter) SelectionEvent(org.eclipse.swt.events.SelectionEvent) KeyListener(org.eclipse.swt.events.KeyListener) FocusEvent(org.eclipse.swt.events.FocusEvent) SelectionListener(org.eclipse.swt.events.SelectionListener)

Example 8 with KeyEvent

use of org.eclipse.swt.events.KeyEvent in project translationstudio8 by heartsome.

the class XLIFFEditorImplWithNatTable method addFilterComposite.

/**
	 * 添加填充过滤器面板内容的面板
	 * @param parent
	 * @return 过滤器面板;
	 */
private void addFilterComposite(Composite main) {
    Composite top = new Composite(main, SWT.NONE);
    GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).margins(0, 0).applyTo(top);
    top.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    // 输入行号进行定位
    final String rowLocationStr = Messages.getString("editor.XLIFFEditorImplWithNatTable.rowLocationStr");
    Text txtRowLocation = new Text(top, SWT.BORDER);
    txtRowLocation.setText(rowLocationStr);
    int width = 40;
    if (Util.isLinux()) {
        width = 35;
    }
    GridDataFactory.swtDefaults().hint(width, SWT.DEFAULT).applyTo(txtRowLocation);
    txtRowLocation.addFocusListener(new FocusAdapter() {

        @Override
        public void focusGained(FocusEvent e) {
            Text text = (Text) e.widget;
            if (rowLocationStr.equals(text.getText())) {
                text.setText("");
            }
        }

        @Override
        public void focusLost(FocusEvent e) {
            Text text = (Text) e.widget;
            if ("".equals(text.getText())) {
                text.setText(rowLocationStr);
            }
        }
    });
    txtRowLocation.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent event) {
            if (event.keyCode == SWT.CR || event.keyCode == SWT.KEYPAD_CR) {
                String rowNumString = ((Text) event.widget).getText().trim();
                if (rowNumString != null && !"".equals(rowNumString)) {
                    int rowPosition;
                    try {
                        rowPosition = Integer.parseInt(rowNumString) - 1;
                        jumpToRow(rowPosition, false);
                        updateStatusLine();
                    } catch (NumberFormatException e) {
                        Text text = (Text) event.widget;
                        text.setText("");
                    }
                }
            }
        }
    });
    txtRowLocation.addVerifyListener(new VerifyListener() {

        public void verifyText(VerifyEvent event) {
            if (event.keyCode == 0 && event.stateMask == 0) {
            // 文本框得到焦点时
            } else if (Character.isDigit(event.character) || event.character == '\b' || event.keyCode == 127) {
                // 输入数字,或者按下Backspace、Delete键
                if ("".equals(((Text) event.widget).getText().trim()) && event.character == '0') {
                    event.doit = false;
                } else {
                    event.doit = true;
                }
            } else {
                event.doit = false;
            }
        }
    });
    cmbFilter = new Combo(top, SWT.BORDER | SWT.READ_ONLY);
    cmbFilter.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    // TODO 完善过滤器初始化数据。
    // cmbFilter.add("所有文本段");
    // cmbFilter.add("未翻译文本段");
    // cmbFilter.add("已翻译文本段");
    // cmbFilter.add("未批准文本段");
    // cmbFilter.add("已批准文本段");
    // cmbFilter.add("有批注文本段");
    // cmbFilter.add("锁定文本段");
    // cmbFilter.add("未锁定文本段");
    // cmbFilter.add("重复文本段");
    // cmbFilter.add("疑问文本段");
    // cmbFilter.add("上下文匹配文本段");
    // cmbFilter.add("完全匹配文本段");
    // cmbFilter.add("模糊匹配文本段");
    // cmbFilter.add("快速翻译文本段");
    // cmbFilter.add("自动繁殖文本段");
    // cmbFilter.add("错误标记文本段");
    // cmbFilter.add("术语不一致文本段");
    // cmbFilter.add("译文不一致文本段");
    // cmbFilter.add("带修订标记文本段");
    final Set<String> filterNames = XLFHandler.getFilterNames();
    for (String filterName : filterNames) {
        cmbFilter.add(filterName);
    }
    // 添加选项改变监听
    cmbFilter.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            // Fixed Bug #2243 by Jason 当鼠标焦点在源文单元框中使用过滤器,对过滤后的译文进行操作会提示该行锁定不能操作
            // ActiveCellEditor.commit();
            HsMultiActiveCellEditor.commit(true);
            Combo cmbFilter = (Combo) e.widget;
            boolean isUpdated = handler.doFilter(cmbFilter.getText(), langFilterCondition);
            if (isUpdated) {
                if (table != null) {
                    bodyLayer.getSelectionLayer().clear();
                    if (bodyLayer.selectionLayer.getRowCount() > 0) {
                        // 默认选中第一行
                        HsMultiActiveCellEditor.commit(true);
                        bodyLayer.selectionLayer.doCommand(new SelectCellCommand(bodyLayer.getSelectionLayer(), getTgtColumnIndex(), isHorizontalLayout ? 0 : 1, false, false));
                        HsMultiCellEditorControl.activeSourceAndTargetCell(XLIFFEditorImplWithNatTable.this);
                    }
                    table.setFocus();
                }
                // 自动调整 NatTable 大小 ;
                autoResize();
                // 更新状态栏
                updateStatusLine();
                NattableUtil.refreshCommand(XLIFFEditorSelectionPropertyTester.PROPERTY_NAMESPACE, XLIFFEditorSelectionPropertyTester.PROPERTY_ENABLED);
            }
        }
    });
    Button btnSaveFilter = new Button(top, SWT.NONE);
    // TODO 考虑换成图片显示。
    btnSaveFilter.setText(Messages.getString("editor.XLIFFEditorImplWithNatTable.btnAddFilter"));
    btnSaveFilter.setToolTipText(Messages.getString("editor.XLIFFEditorImplWithNatTable.btnAddFilterTooltip"));
    btnSaveFilter.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            CustomFilterDialog dialog = new CustomFilterDialog(table.getShell(), cmbFilter);
            dialog.open();
        // int res = dialog.open();
        // if (res == CustomFilterDialog.OK) {
        // cmbFilter.select(cmbFilter.getItemCount() - 1); // 选中最后一行数据
        // cmbFilter.notifyListeners(SWT.Selection, null);
        // }
        }
    });
    // 默认选中第一行数据
    cmbFilter.select(0);
    cmbFilter.notifyListeners(SWT.Selection, null);
    // 更新nattable的列名为语言对
    renameColumn();
    top.pack();
}
Also used : FocusAdapter(org.eclipse.swt.events.FocusAdapter) VerifyListener(org.eclipse.swt.events.VerifyListener) CustomFilterDialog(net.heartsome.cat.ts.ui.xliffeditor.nattable.dialog.CustomFilterDialog) Composite(org.eclipse.swt.widgets.Composite) SelectCellCommand(net.sourceforge.nattable.selection.command.SelectCellCommand) KeyAdapter(org.eclipse.swt.events.KeyAdapter) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) StyledText(org.eclipse.swt.custom.StyledText) Text(org.eclipse.swt.widgets.Text) Combo(org.eclipse.swt.widgets.Combo) FocusEvent(org.eclipse.swt.events.FocusEvent) Point(org.eclipse.swt.graphics.Point) KeyEvent(org.eclipse.swt.events.KeyEvent) Button(org.eclipse.swt.widgets.Button) GridData(org.eclipse.swt.layout.GridData) SelectionEvent(org.eclipse.swt.events.SelectionEvent) VerifyEvent(org.eclipse.swt.events.VerifyEvent)

Example 9 with KeyEvent

use of org.eclipse.swt.events.KeyEvent in project KaiZen-OpenAPI-Editor by RepreZen.

the class QuickOutline method createTitleControl.

@Override
protected Control createTitleControl(Composite parent) {
    filterText = new Text(parent, SWT.NONE);
    Dialog.applyDialogFont(filterText);
    GridData data = new GridData(GridData.FILL_HORIZONTAL);
    data.horizontalAlignment = GridData.FILL;
    data.verticalAlignment = GridData.CENTER;
    filterText.setLayoutData(data);
    filterText.addKeyListener(new KeyListener() {

        public void keyPressed(KeyEvent e) {
            if (isInvocationEvent(e)) {
                e.doit = false;
                handleMultiView();
            } else if (e.keyCode == SWT.CR) {
                handleSelection();
                QuickOutline.this.close();
            } else if (e.keyCode == SWT.ARROW_DOWN) {
                treeViewer.getTree().setFocus();
            } else if (e.keyCode == SWT.ARROW_UP) {
                treeViewer.getTree().setFocus();
            } else if (e.character == SWT.ESC) {
                QuickOutline.this.close();
            }
        }

        public void keyReleased(KeyEvent e) {
        // do nothing
        }
    });
    filterText.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            if (filterTimer != null) {
                filterTimer.cancel();
            }
            // reset the timer each time there is a
            // text modification, so that only the last
            // one will be executed.
            filterTimer = new Timer();
            filterTimer.schedule(new TimerTask() {

                @Override
                public void run() {
                    if (filterText.isDisposed()) {
                        return;
                    }
                    // Make sure we access the text in the correct thread.
                    filterText.getDisplay().asyncExec(new Runnable() {

                        @Override
                        public void run() {
                            // refreshing the tree will execute the filter.
                            if (Strings.emptyToNull(filterText.getText()) == null) {
                                treeViewer.refresh();
                                treeViewer.collapseAll();
                            } else {
                                treeViewer.refresh();
                                TreeItem[] items = treeViewer.getTree().getItems();
                                if (items != null && items.length > 0) {
                                    treeViewer.getTree().setSelection(items[0]);
                                    treeViewer.getTree().showItem(items[0]);
                                } else {
                                    treeViewer.setSelection(StructuredSelection.EMPTY);
                                }
                                treeViewer.expandAll();
                            }
                        }
                    });
                }
            }, 500);
        }
    });
    return filterText;
}
Also used : KeyEvent(org.eclipse.swt.events.KeyEvent) ModifyEvent(org.eclipse.swt.events.ModifyEvent) ModifyListener(org.eclipse.swt.events.ModifyListener) Timer(java.util.Timer) TimerTask(java.util.TimerTask) GridData(org.eclipse.swt.layout.GridData) Text(org.eclipse.swt.widgets.Text) KeyListener(org.eclipse.swt.events.KeyListener)

Example 10 with KeyEvent

use of org.eclipse.swt.events.KeyEvent in project tdi-studio-se by Talend.

the class TalendEditorComponentCreationAssist method initListeners.

private void initListeners() {
    assistText.addKeyListener(new KeyListener() {

        @Override
        public void keyReleased(KeyEvent e) {
            if (e.stateMask == SWT.NONE) {
                if (e.keyCode == SWT.ESC) {
                    disposeAssistText();
                } else if (e.keyCode == SWT.CR) {
                    acceptProposal();
                }
            }
        }

        @Override
        public void keyPressed(KeyEvent e) {
        }
    });
    assistText.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {
            if (!(contentProposalAdapter.isProposalPopupOpen())) {
                disposeAssistText();
            }
        }

        @Override
        public void focusGained(FocusEvent e) {
        }
    });
    contentProposalAdapter.addContentProposalListener(new IContentProposalListener2() {

        @Override
        public void proposalPopupOpened(ContentProposalAdapter adapter) {
        }

        @Override
        public void proposalPopupClosed(ContentProposalAdapter adapter) {
            if (assistText != null && !assistText.isFocusControl()) {
                disposeAssistText();
            }
        }
    });
    contentProposalAdapter.addContentProposalListener(new IContentProposalListener() {

        @Override
        public void proposalAccepted(IContentProposal proposal) {
            acceptProposal();
        }
    });
}
Also used : KeyEvent(org.eclipse.swt.events.KeyEvent) IContentProposal(org.eclipse.jface.fieldassist.IContentProposal) KeyListener(org.eclipse.swt.events.KeyListener) IContentProposalListener(org.eclipse.jface.fieldassist.IContentProposalListener) FocusListener(org.eclipse.swt.events.FocusListener) FocusEvent(org.eclipse.swt.events.FocusEvent) IContentProposalListener2(org.eclipse.jface.fieldassist.IContentProposalListener2) ContentProposalAdapter(org.eclipse.jface.fieldassist.ContentProposalAdapter)

Aggregations

KeyEvent (org.eclipse.swt.events.KeyEvent)98 KeyAdapter (org.eclipse.swt.events.KeyAdapter)63 GridData (org.eclipse.swt.layout.GridData)54 GridLayout (org.eclipse.swt.layout.GridLayout)42 Composite (org.eclipse.swt.widgets.Composite)42 SelectionEvent (org.eclipse.swt.events.SelectionEvent)41 Text (org.eclipse.swt.widgets.Text)34 KeyListener (org.eclipse.swt.events.KeyListener)32 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)32 Label (org.eclipse.swt.widgets.Label)29 ModifyEvent (org.eclipse.swt.events.ModifyEvent)22 ModifyListener (org.eclipse.swt.events.ModifyListener)22 Point (org.eclipse.swt.graphics.Point)21 Button (org.eclipse.swt.widgets.Button)21 MouseEvent (org.eclipse.swt.events.MouseEvent)20 TableViewer (org.eclipse.jface.viewers.TableViewer)19 StyledText (org.eclipse.swt.custom.StyledText)13 FocusEvent (org.eclipse.swt.events.FocusEvent)13 ISelectionChangedListener (org.eclipse.jface.viewers.ISelectionChangedListener)12 SelectionChangedEvent (org.eclipse.jface.viewers.SelectionChangedEvent)12