@Test public void testRemoveVerifyListenerUnregistersUntypedEvents() { VerifyListener listener = mock(VerifyListener.class); text.addVerifyListener(listener); text.removeVerifyListener(listener); assertFalse(text.isListening(SWT.Verify)); }
/** * Set the edit mask string on the edit mask control. * * @param editMask The edit mask string */ public void setMask(String editMask) { editMaskParser = new EditMaskParser(editMask); text.addVerifyListener(verifyListener); text.addFocusListener(focusListener); text.addDisposeListener(disposeListener); updateTextField.run(); oldValidText = text.getText(); oldValidRawText = editMaskParser.getRawResult(); }
private void initialize() { String filename = StringUtils.defaultString(level.getName()); GridData gridDataLabel = new GridData(); gridDataLabel.widthHint = 100; gridDataLabel.verticalAlignment = GridData.CENTER; gridDataLabel.horizontalAlignment = GridData.END; GridData gridDataText = new GridData(); gridDataText.heightHint = -1; gridDataText.widthHint = 150; GridLayout gridLayoutMy = new GridLayout(); gridLayoutMy.numColumns = 2; gridLayoutMy.marginWidth = 25; gridLayoutMy.verticalSpacing = 5; gridLayoutMy.horizontalSpacing = 20; gridLayoutMy.marginHeight = 25; gridLayoutMy.makeColumnsEqualWidth = false; GridData gridDataMy = new GridData(); gridDataMy.grabExcessHorizontalSpace = true; gridDataMy.verticalAlignment = GridData.CENTER; gridDataMy.horizontalSpan = 1; gridDataMy.horizontalAlignment = GridData.FILL; this.setLayoutData(gridDataMy); this.setLayout(gridLayoutMy); Label labelTitle = new Label(this, SWT.RIGHT); labelTitle.setText( "* ".concat(LabelHolder.get("dialog.pojo.level.fields.title"))); // $NON-NLS-1$ labelTitle.setLayoutData(gridDataLabel); textTitle = new Text(this, SWT.BORDER); textTitle.setTextLimit(256); textTitle.setLayoutData(gridDataText); textTitle.setText(StringUtils.defaultString(level.getTitle())); Label labelName = new Label(this, SWT.RIGHT); labelName.setText( "* ".concat(LabelHolder.get("dialog.pojo.level.fields.name"))); // $NON-NLS-1$ labelName.setLayoutData(gridDataLabel); textName = new Text(this, SWT.BORDER); textName.setTextLimit(256); textName.setLayoutData(gridDataText); textName.setText(filename); textName.addVerifyListener(new FileNameVerifier()); textName.addModifyListener(new ModifyListenerClearErrorMessages(dialogCreator)); Collection<String> forbiddenNames = new ArrayList<String>(); Collection<Level> sisters = level.getParent().getSublevels(); if (CollectionUtils.isNotEmpty(sisters)) for (Level otherLevel : sisters) forbiddenNames.add(otherLevel.getName()); if (StringUtils.isNotBlank(filename)) forbiddenNames.remove(filename); if (level.getId() == APoormansObject .UNSET_VALUE) // suggestion of the file name should work just with new objects textTitle.addModifyListener( new FilenameSuggestorListener(dialogCreator, textName, forbiddenNames)); }
private void createConnectionGroup(final Composite parent) { final Group g = createGroup(parent, UIText.RepositorySelectionPage_groupConnection); newLabel(g, UIText.RepositorySelectionPage_promptScheme + ":"); // $NON-NLS-1$ scheme = new Combo(g, SWT.DROP_DOWN | SWT.READ_ONLY); for (Protocol p : Protocol.values()) scheme.add(p.getDefaultScheme()); scheme.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { final int idx = scheme.getSelectionIndex(); if (idx < 0) { setURI(uri.setScheme(null)); scheme.setToolTipText(EMPTY_STRING); } else { setURI(uri.setScheme(nullString(scheme.getItem(idx)))); scheme.setToolTipText(Protocol.values()[idx].getTooltip()); } updateGroups(); } }); newLabel(g, UIText.RepositorySelectionPage_promptPort + ":"); // $NON-NLS-1$ portText = new Text(g, SWT.BORDER); portText.addVerifyListener( new VerifyListener() { final Pattern p = Pattern.compile("^(?:[1-9][0-9]*)?$"); // $NON-NLS-1$ @Override public void verifyText(final VerifyEvent e) { final String v = portText.getText(); e.doit = p.matcher(v.substring(0, e.start) + e.text + v.substring(e.end)).matches(); } }); portText.addModifyListener( new ModifyListener() { @Override public void modifyText(final ModifyEvent e) { final String val = nullString(portText.getText()); if (val == null) setURI(uri.setPort(-1)); else try { setURI(uri.setPort(Integer.parseInt(val))); } catch (NumberFormatException err) { // Ignore it for now. } } }); }
private void constructTextWidgets() { if (txfValue == null) { txfValue = new Text(pnlText, SWT.BORDER); txfValue.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); txfValue.addModifyListener( new ModifyListener() { @Override public void modifyText(ModifyEvent theEvent) { handleTextChange(); } }); txfValue.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent theEvent) { String text = theEvent.text; if ((text != null) && (text.length() > 0)) { for (int size = text.length(), i = 0; i < size; i++) { if ((validChars != null) && (validChars.indexOf(text.charAt(i)) == -1)) { theEvent.doit = false; break; } else if (!model.isValidValue(text)) { theEvent.doit = false; break; } } } } }); txfValue.addTraverseListener( new TraverseListener() { @Override public void keyTraversed(TraverseEvent theEvent) { // stops the enter key from putting in invisible characters if (theEvent.detail == SWT.TRAVERSE_RETURN) { theEvent.detail = SWT.TRAVERSE_NONE; theEvent.doit = true; } } }); pnlText.pack(); } }
public UpperText(final Composite parent, final int style) { super(parent, style); setLayout(new FillLayout()); Text text = new Text(this, SWT.MULTI | SWT.V_SCROLL); text.addVerifyListener( new VerifyListener() { public void verifyText(final VerifyEvent e) { if (e.text.startsWith("1")) { e.doit = false; } else { e.text = e.text.toUpperCase(); } } }); }
/** 初始化匹配率文本框的监听,只允许输入数字,最大值为100或者101 */ private void initMatchQtTextListener() { value.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent event) { if (!value.getText().equals(initValue)) { if (event.keyCode == 0 && event.stateMask == 0) { // 文本框得到焦点时 } else if (Character.isDigit(event.character) || event.character == '\b' || event.keyCode == 127) { // 输入数字,或者按下Backspace、Delete键 Text txt = (Text) event.widget; if ("0".equals(txt.getText().trim()) && event.character == '0') { event.doit = false; return; } event.doit = true; } else { event.doit = false; } } } }); value.addModifyListener( new ModifyListener() { final int max = isUEVersion() ? 101 : 100; // 最大值 public void modifyText(ModifyEvent e) { if (!value.getText().equals(initValue) && !value.getText().equals("")) { Text txt = (Text) e.widget; String text = txt.getText().trim(); if (text.length() == 2 && text.charAt(0) == '0') { txt.setText(text.charAt(1) + ""); txt.setSelection(1); } else if (Integer.parseInt(text) > max) { txt.setText("100"); txt.setSelection(3); } } } }); }
@Test public void testAddVerifyListenerRegistersUntypedEvents() { text.addVerifyListener(mock(VerifyListener.class)); assertTrue(text.isListening(SWT.Verify)); }
@Test public void testVerifyEvent() { VerifyListener verifyListener; final java.util.List<TypedEvent> log = new ArrayList<TypedEvent>(); text.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent event) { log.add(event); } }); text.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent event) { assertEquals('\0', event.character); assertEquals(0, event.keyCode); log.add(event); } }); // VerifyEvent is also sent when setting text to the already set value log.clear(); text.setText(""); assertEquals(2, log.size()); assertEquals(VerifyEvent.class, log.get(0).getClass()); assertEquals(ModifyEvent.class, log.get(1).getClass()); // Test verifyListener that prevents (doit=false) change text.setText(""); log.clear(); verifyListener = new VerifyListener() { public void verifyText(VerifyEvent event) { event.doit = false; } }; text.addVerifyListener(verifyListener); text.setText("other"); assertEquals(1, log.size()); assertEquals(VerifyEvent.class, log.get(0).getClass()); assertEquals("", text.getText()); text.removeVerifyListener(verifyListener); // Test verifyListener that manipulates text text.setText(""); log.clear(); verifyListener = new VerifyListener() { public void verifyText(VerifyEvent event) { event.text = "manipulated"; } }; text.addVerifyListener(verifyListener); text.setText("other"); assertEquals(2, log.size()); assertEquals(VerifyEvent.class, log.get(0).getClass()); assertEquals(ModifyEvent.class, log.get(1).getClass()); assertEquals("manipulated", text.getText()); text.removeVerifyListener(verifyListener); // Ensure that VerifyEvent#start and #end denote the positions of the old // text and #text denotes the text to be set String oldText = "old"; text.setText(oldText); log.clear(); String newText = oldText + "changed"; text.setText(newText); assertEquals(2, log.size()); assertEquals(VerifyEvent.class, log.get(0).getClass()); VerifyEvent verifyEvent = (VerifyEvent) log.get(0); assertEquals(0, verifyEvent.start); assertEquals(oldText.length(), verifyEvent.end); assertEquals(newText, verifyEvent.text); assertEquals(ModifyEvent.class, log.get(1).getClass()); // Ensure that VerifyEvent gets fired when setEditable was set to false text.setText(""); text.setEditable(false); log.clear(); text.setText("whatever"); assertEquals(2, log.size()); assertEquals(VerifyEvent.class, log.get(0).getClass()); assertEquals(ModifyEvent.class, log.get(1).getClass()); text.setEditable(true); // Ensure that VerifyEvent#text denotes the text to be set // and not the cut by textLimit one text.setTextLimit(5); String sampleText = "sample_text"; log.clear(); text.setText(sampleText); assertEquals(2, log.size()); assertEquals(VerifyEvent.class, log.get(0).getClass()); verifyEvent = (VerifyEvent) log.get(0); assertEquals(sampleText, verifyEvent.text); }
private void createComp(Composite group) { GridLayout layout = new GridLayout(1, false); layout.verticalSpacing = 10; group.setLayout(layout); // TableViewer是通过Table来布局的 // 制作表格 MULTI可多选 H_SCROLL有水平 滚动条、V_SCROLL有垂直滚动条、BORDER有边框、FULL_SELECTION整行选择 table = new Table(group, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL); // 注意此处的设置 TableLayout tableLayout = new TableLayout(); table.setLayout(tableLayout); // 指定Table单元格的宽度和高度 table.addListener( SWT.MeasureItem, new Listener() { // 向表格增加一个SWT.MeasureItem监听器,每当需要单元内容的大小的时候就会被调用。 public void handleEvent(Event event) { event.width = table.getGridLineWidth(); // 设置宽度 event.height = (int) Math.floor(event.gc.getFontMetrics().getHeight() * 1.5); // 设置高度为字体高度的1.5倍 } }); // 表格的视图 tableViewer = new TableViewer(table); // 标题和网格线可见 tableViewer.getTable().setLinesVisible(true); tableViewer.getTable().setHeaderVisible(true); // 设置填充 // GridData data = new GridData(SWT.LEFT,SWT.CENTER, true, false);//SWT.FILL, SWT.FILL, true, // false xbm GridData data = new GridData(GridData.FILL_BOTH); data.widthHint = 350; data.heightHint = 295; data.grabExcessHorizontalSpace = true; tableViewer.getTable().setLayoutData(data); // 表格的布局 // 创建表格列的标题 int width = 1; for (int i = 0; i < stationData.getColumnCount(); i++) { width = stationData.getColumnWidth(i); TableColumn column = new TableColumn(table, SWT.NONE); column.setWidth((int) (width * 8)); column.setText(stationData.getColumnHeads()[i]); // 设置表头 column.setAlignment(SWT.LEFT); // 对齐方式SWT.LEFT if (i == 0) // 站名 { // 列的选择事件 实现排序 column.addSelectionListener( new SelectionAdapter() { boolean sortType = true; // sortType记录上一次的排序方式,默认为升序 public void widgetSelected(SelectionEvent e) { sortType = !sortType; // 取反。下一次排序方式要和这一次的相反 tableViewer.setSorter(new StationSorter(sortType, stationData.columnHeads[0])); } }); } } /*tableLayout.addColumnData(new ColumnWeightData(8, 8, false));//设置列宽为8像素 TableColumn column_one = new TableColumn(table, SWT.NONE);//SWT.LEFT column_one.setText(stationData.COLUMN_HEADINGS[0]);//设置表头 column_one.setAlignment(SWT.LEFT);//对齐方式SWT.LEFT column.setWidth(10);//宽度 */ // 设置标题的提供者 tableViewer.setLabelProvider(new TableLabelProvider()); // 设置表格视图的内容提供者 tableViewer.setContentProvider(new TableContentProvider()); // 设置列的属性. tableViewer.setColumnProperties(stationData.columnHeads); // 定义每一列的别名 tableViewer.setColumnProperties(new String[] {"name", "down", "up", "map"}); // 设置每一列的单元格编辑组件CellEditor CellEditor[] celleditors = new CellEditor[5]; // 文本编辑框 celleditors[0] = null; celleditors[1] = new TextCellEditor(table); celleditors[2] = new TextCellEditor(table); // CheckboxCellEditor(table) 复选框 celleditors[3] = new ComboBoxCellEditor(table, StationData.MAPS, SWT.READ_ONLY); // 下拉框 Text text = (Text) celleditors[1].getControl(); // 设置第down列只能输入数值 text.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { // 输入控制键,输入中文,输入字符,输入数字 正整数验证 Pattern pattern = Pattern.compile("[0-9]\\d*"); // 正则表达式 Matcher matcher = pattern.matcher(e.text); if (matcher.matches()) // 处理数字 { /*if(Integer.parseInt(e.text) != 0)//确保输入的数字不是0 e.doit = true; else e.doit = false; */ e.doit = true; } else if (e.text.length() > 0) // 字符: 包含中文、空格 e.doit = false; else // 控制键 e.doit = true; } }); Text text1 = (Text) celleditors[2].getControl(); // 设置第up列只能输入数值 text1.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { String inStr = e.text; if (inStr.length() > 0) { e.doit = NumberUtils.isDigits(inStr); } } }); table.addMouseMoveListener( new MouseMoveListener() { public void mouseMove(MouseEvent e) { if (StationData.reloadFlag) { getStationInfo(); openCurrentTable(row); StationData.reloadFlag = false; // System.out.println("entry"); } } }); /*table.addFocusListener(new FocusListener(){ public void focusGained(FocusEvent e) { getStationInfo(); openCurrentTable(row); } @Override public void focusLost(FocusEvent e) { } }); */ tableViewer.setCellEditors(celleditors); // 设置单元的更改器 tableViewer.setCellModifier(new TableCellModifier()); tableViewer.addFilter(new TableViewerFilter()); // 过滤器 // 构造工具条 Composite buttonComposite = new Composite(group, SWT.NONE); buttonComposite.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false)); // 使工具条居中 Action actionModify = new Action("更新") { public void run() { // 取得用户所选择的第一行, 若没有选择则为null IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); // 获取选中的第一行数据 Station station = (Station) selection.getFirstElement(); if (station != null) { if (updateStationInfo( station.getStation_downnumber(), station.getStation_upnumber(), station.getStation_graph(), station.getStation_name())) { showMsg("成功更新!"); // 表格的刷新方法,界面会重新读取数据并显示 pushCommand(); tableViewer.refresh(); // false } else { showMsg("更新失败!"); // tableViewer.refresh();//false } } else { showMsg("请选取进行更新的行!"); } } }; Action actionDelete = new Action("删除") { public void run() { // 取得用户所选择的第一行, 若没有选择则为null IStructuredSelection selection = (IStructuredSelection) tableViewer.getSelection(); // 获取选中的第一个数据 Station station = (Station) selection.getFirstElement(); if (station != null) { // 先预先移动到下一行 Table table = tableViewer.getTable(); // int i = table.getSelectionIndex(); //取得当前所选行的序号,如没有则返回-1 // table.setSelection(i + 1); //当前选择行移下一行 // 确认删除 MessageBox messageBox = new MessageBox(shell, SWT.YES | SWT.NO | SWT.ICON_INFORMATION); messageBox.setText("提示信息"); messageBox.setMessage("确定要删除此记录吗?"); // SWT.YES 是 // SWT.NO 否 // SWT.CANCEL 取消 // SWT.RETRY 重试// SWT.ABORT 放弃// SWT.IGNORE // 忽略 if (messageBox.open() == SWT.YES) { if (deleteStationInfo(station.getStation_name())) // 从数据库中删除记录 { // showMsg("成功删除!"); ((List) tableViewer.getInput()).remove(station); // 数据模型的List容器中删除 stationData.remove(station.getStation_name()); openCurrentTable(row); tableViewer.remove(station); // 从表格界面上删除 pushCommand(); } else showMsg("删除失败!"); } } else { showMsg("请选取要删除的纪录!"); } } }; Action actionClear = new Action("清空") { // 清除所显示内容,点击保存后更新库 public void run() { if (clearStationInfo()) { showMsg("清空操作成功!"); stationData.removeAll(); openCurrentTable(row); pushCommand(); } else showMsg("清空操作失败!"); } }; Action actionHelp = new Action("帮助") { public void run() { String str = "更新:\n\r" + "先对某行内容进行修改,然后点击更新进行保存\n\r" + "清空:\n\r" + "从库中物理删除所有记录"; showMsg(str); } }; Action nextPage = new Action("下一页") { public void run() { row++; if (row > stationData.getTotalPageNum()) { row--; return; } openCurrentTable(row); } }; Action prevPage = new Action("上一页") { public void run() { row--; if (row < 1) { row++; return; } openCurrentTable(row); } }; Action refresh = new Action("刷新") { public void run() { getStationInfo(); openCurrentTable(row); } }; // 工具条 ToolBar toolBar = new ToolBar(buttonComposite, SWT.FLAT | SWT.RIGHT); // |SWT.BORDER // 工具条管理器 ToolBarManager manager = new ToolBarManager(toolBar); // manager.add(refresh); // manager.add(new Separator()); manager.add(nextPage); manager.add(prevPage); manager.add(new Separator()); manager.add(actionModify); manager.add(actionDelete); manager.add(actionClear); manager.add(new Separator()); manager.add(actionHelp); manager.update(true); // 选中某行时,改变行的颜色 table.addListener( SWT.EraseItem, new Listener() { public void handleEvent(Event event) { event.detail &= ~SWT.HOT; if ((event.detail & SWT.SELECTED) == 0) return; int clientWidth = table.getClientArea().width; GC gc = event.gc; Color oldForeground = gc.getForeground(); Color oldBackground = gc.getBackground(); gc.setForeground(red); // gc.setBackground(yellow); gc.fillGradientRectangle(0, event.y, clientWidth, event.height, false); gc.setForeground(oldForeground); gc.setBackground(oldBackground); event.detail &= ~SWT.SELECTED; } }); // 在tableviewer内部为数据记录和tableItem之间的映射创建一个hash表,这样可以加快tableItem的和记录间的查找速度 // 必须保证存在要显示的数据,否则程序出错。所以这里不能用下面的语句 // tableViewer.setUseHashlookup(true);//必须在setInput之前加入才有效 // 从服务器获取数据 getStationInfo(); // 通过setInput为table添加了一个list后,只要对这个list里的元素进行添加和删除, // table中的数据就会自动添加和删除,当然每次操作后需要调用refresh方法对tableviewer进行刷新。 // 打开界面所显示的内容 tableViewer.setInput(stationData.getData()); // 自动输入数据 即将数据显示在表格中 tableViewer.setItemCount(stationData.PAGE_SIZE); // 设置显示的Item数 } //// createComp
/** * @param parent * @param style */ public SFTPAdvancedOptionsComposite(Composite parent, int style, Listener listener) { super(parent, style); this.listener = listener; setLayout( GridLayoutFactory.swtDefaults() .numColumns(5) .spacing( new PixelConverter(this) .convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING), new PixelConverter(this) .convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING)) .create()); /* row 1 */ Label label = new Label(this, SWT.NONE); label.setLayoutData( GridDataFactory.swtDefaults() .hint( new PixelConverter(this) .convertHorizontalDLUsToPixels(IDialogConstants.LABEL_WIDTH), SWT.DEFAULT) .create()); label.setText(StringUtil.makeFormLabel(Messages.SFTPAdvancedOptionsComposite_Compression)); compressionCombo = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.BORDER); compressionCombo.add(ISFTPConstants.COMPRESSION_AUTO); compressionCombo.add(ISFTPConstants.COMPRESSION_NONE); compressionCombo.add(ISFTPConstants.COMPRESSION_ZLIB); compressionCombo.setLayoutData( GridDataFactory.swtDefaults() .hint(compressionCombo.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x, SWT.DEFAULT) .create()); label = new Label(this, SWT.NONE); label.setLayoutData( GridDataFactory.swtDefaults() .align(SWT.END, SWT.CENTER) .hint( new PixelConverter(this) .convertHorizontalDLUsToPixels(IDialogConstants.LABEL_WIDTH), SWT.DEFAULT) .create()); label = new Label(this, SWT.NONE); label.setLayoutData(GridDataFactory.swtDefaults().create()); label.setText(StringUtil.makeFormLabel(Messages.SFTPAdvancedOptionsComposite_Port)); portText = new Text(this, SWT.SINGLE | SWT.RIGHT | SWT.BORDER); portText.setLayoutData( GridDataFactory.swtDefaults() .hint( Math.max( new PixelConverter(portText).convertWidthInCharsToPixels(5), portText.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x), SWT.DEFAULT) .create()); /* row 2 */ label = new Label(this, SWT.NONE); label.setLayoutData( GridDataFactory.swtDefaults() .hint( new PixelConverter(this) .convertHorizontalDLUsToPixels(IDialogConstants.LABEL_WIDTH), SWT.DEFAULT) .create()); label.setText(StringUtil.makeFormLabel(Messages.SFTPAdvancedOptionsComposite_Encoding)); encodingCombo = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.BORDER); encodingCombo.setItems(Charset.availableCharsets().keySet().toArray(new String[0])); encodingCombo.setLayoutData( GridDataFactory.swtDefaults() .hint(encodingCombo.computeSize(SWT.DEFAULT, SWT.DEFAULT, true).x, SWT.DEFAULT) .span(4, 1) .create()); /* -- */ addListeners(); portText.addVerifyListener(new NumberVerifyListener()); }
/** {@inheritDoc} */ @Override protected Control createControl(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); GridLayout gridLayout = new GridLayout(2, false); gridLayout.marginHeight = 0; gridLayout.marginWidth = 0; composite.setLayout(gridLayout); valueText = new Text(composite, SWT.BORDER | SWT.RIGHT); valueText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); valueText.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent e) { String oldText = valueText.getText(); String update = e.text; String newText = oldText.substring(0, e.start) + update + oldText.substring(e.end, oldText.length()); // allow blank text if (StringUtils.isNotBlank(newText)) { // otherwise prove we have a valid double number try { Double.parseDouble(newText); } catch (NumberFormatException exception) { e.doit = false; return; } } } }); valueText.addModifyListener( new ModifyListener() { @Override public void modifyText(ModifyEvent e) { if (!modifyMarker) { String text = valueText.getText(); if (!text.isEmpty() && (text.charAt(0) != '-' || text.length() > 1)) { long currentSize = getCurrentSize(); sendPropertyUpdateEvent(currentSize); } } else { modifyMarker = false; } } }); valueText.addFocusListener( new FocusAdapter() { @Override public void focusLost(FocusEvent e) { String text = valueText.getText(); if (text.isEmpty()) { displayValue(getLastCorrectValue()); } } }); unitCombo = new Combo(composite, SWT.BORDER); unitCombo.setItems(new String[] {"B", "KB", "MB", "GB"}); GridData unitGd = new GridData(SWT.RIGHT, SWT.FILL, false, false); unitGd.widthHint = 60; unitCombo.setLayoutData(unitGd); unitCombo.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { long currentSize = getLastCorrectValue(); int exp = unitCombo.getSelectionIndex(); displayValue(currentSize, exp); }; }); displayValue(property.getValue().longValue()); return composite; }
/** * Creates the dialog's contents * * @param shell the dialog window */ private void createContents(final Shell shell) { final Config config = controller.getConfig(); // Create the ScrolledComposite to scroll horizontally and vertically ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL); // Create the parent Composite container for the three child containers Composite container = new Composite(sc, SWT.NONE); GridLayout containerLayout = new GridLayout(1, false); container.setLayout(containerLayout); shell.setLayout(new FillLayout()); GridData data; data = new GridData(GridData.FILL_HORIZONTAL); data.heightHint = 50; data.widthHint = 400; // START TOP COMPONENT Composite topComp = new Composite(container, SWT.NONE); GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; layout.marginWidth = 0; layout.verticalSpacing = 0; topComp.setLayout(layout); topComp.setLayoutData(data); Label blank = new Label(topComp, SWT.NONE); data = new GridData(GridData.FILL_HORIZONTAL); data.heightHint = 10; blank.setLayoutData(data); blank.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); // Show the message Label label = new Label(topComp, SWT.NONE); label.setText(message); data = new GridData(GridData.FILL_HORIZONTAL); data.heightHint = 30; data.widthHint = 370; Font f = label.getFont(); FontData[] farr = f.getFontData(); FontData fd = farr[0]; fd.setStyle(SWT.BOLD); label.setFont(new Font(Display.getCurrent(), fd)); label.setLayoutData(data); label.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); Label labelSeparator = new Label(topComp, SWT.SEPARATOR | SWT.HORIZONTAL); data = new GridData(GridData.FILL_HORIZONTAL); labelSeparator.setLayoutData(data); // END TOP COMPONENT // START MIDDLE COMPONENT Composite restComp = new Composite(container, SWT.NONE); data = new GridData(GridData.FILL_BOTH); restComp.setLayoutData(data); layout = new GridLayout(2, false); layout.verticalSpacing = 10; restComp.setLayout(layout); // Hide welecome screen Label labelHideWelcomeScreen = new Label(restComp, SWT.RIGHT); labelHideWelcomeScreen.setText( Labels.getString("AdvancedSettingsDialog.hideWelcomeScreen")); // $NON-NLS-1$ labelHideWelcomeScreen.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); buttonHideWelcomeScreen = new Button(restComp, SWT.CHECK); buttonHideWelcomeScreen.setSelection(config.getBoolean(Config.HIDE_WELCOME_SCREEN)); // batch size Label labelBatch = new Label(restComp, SWT.RIGHT); labelBatch.setText(Labels.getString("AdvancedSettingsDialog.batchSize")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelBatch.setLayoutData(data); textBatch = new Text(restComp, SWT.BORDER); textBatch.setText(config.getString(Config.LOAD_BATCH_SIZE)); textBatch.setTextLimit(8); textBatch.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { event.doit = Character.isISOControl(event.character) || Character.isDigit(event.character); } }); data = new GridData(); data.widthHint = 50; textBatch.setLayoutData(data); // insert Nulls Label labelNulls = new Label(restComp, SWT.RIGHT); labelNulls.setText(Labels.getString("AdvancedSettingsDialog.insertNulls")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelNulls.setLayoutData(data); buttonNulls = new Button(restComp, SWT.CHECK); buttonNulls.setSelection(config.getBoolean(Config.INSERT_NULLS)); // assignment rules Label labelRule = new Label(restComp, SWT.RIGHT); labelRule.setText(Labels.getString("AdvancedSettingsDialog.assignmentRule")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelRule.setLayoutData(data); textRule = new Text(restComp, SWT.BORDER); textRule.setTextLimit(18); data = new GridData(); data.widthHint = 115; textRule.setLayoutData(data); textRule.setText(config.getString(Config.ASSIGNMENT_RULE)); // endpoint Label labelEndpoint = new Label(restComp, SWT.RIGHT); labelEndpoint.setText(Labels.getString("AdvancedSettingsDialog.serverURL")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelEndpoint.setLayoutData(data); textEndpoint = new Text(restComp, SWT.BORDER); data = new GridData(); data.widthHint = 250; textEndpoint.setLayoutData(data); String endpoint = config.getString(Config.ENDPOINT); if ("".equals(endpoint)) { // $NON-NLS-1$ endpoint = defaultServer; } textEndpoint.setText(endpoint); // reset url on login Label labelResetUrl = new Label(restComp, SWT.RIGHT); labelResetUrl.setText( Labels.getString("AdvancedSettingsDialog.resetUrlOnLogin")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelResetUrl.setLayoutData(data); buttonResetUrl = new Button(restComp, SWT.CHECK); buttonResetUrl.setSelection(config.getBoolean(Config.RESET_URL_ON_LOGIN)); // insert compression Label labelCompression = new Label(restComp, SWT.RIGHT); labelCompression.setText(Labels.getString("AdvancedSettingsDialog.compression")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelCompression.setLayoutData(data); buttonCompression = new Button(restComp, SWT.CHECK); buttonCompression.setSelection(config.getBoolean(Config.NO_COMPRESSION)); // timeout size Label labelTimeout = new Label(restComp, SWT.RIGHT); labelTimeout.setText(Labels.getString("AdvancedSettingsDialog.timeout")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelTimeout.setLayoutData(data); textTimeout = new Text(restComp, SWT.BORDER); textTimeout.setTextLimit(4); textTimeout.setText(config.getString(Config.TIMEOUT_SECS)); textTimeout.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { event.doit = Character.isISOControl(event.character) || Character.isDigit(event.character); } }); data = new GridData(); data.widthHint = 30; textTimeout.setLayoutData(data); // extraction batch size Label labelQueryBatch = new Label(restComp, SWT.RIGHT); labelQueryBatch.setText(Labels.getString("ExtractionInputDialog.querySize")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelQueryBatch.setLayoutData(data); textQueryBatch = new Text(restComp, SWT.BORDER); textQueryBatch.setText(config.getString(Config.EXTRACT_REQUEST_SIZE)); textQueryBatch.setTextLimit(4); textQueryBatch.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { event.doit = Character.isISOControl(event.character) || Character.isDigit(event.character); } }); data = new GridData(); data.widthHint = 30; textQueryBatch.setLayoutData(data); // enable/disable output of success file for extracts Label labelOutputExtractStatus = new Label(restComp, SWT.RIGHT); labelOutputExtractStatus.setText( Labels.getString("AdvancedSettingsDialog.outputExtractStatus")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelOutputExtractStatus.setLayoutData(data); buttonOutputExtractStatus = new Button(restComp, SWT.CHECK); buttonOutputExtractStatus.setSelection(config.getBoolean(Config.ENABLE_EXTRACT_STATUS_OUTPUT)); // utf-8 for loading Label labelReadUTF8 = new Label(restComp, SWT.RIGHT); labelReadUTF8.setText(Labels.getString("AdvancedSettingsDialog.readUTF8")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelReadUTF8.setLayoutData(data); buttonReadUtf8 = new Button(restComp, SWT.CHECK); buttonReadUtf8.setSelection(config.getBoolean(Config.READ_UTF8)); // utf-8 for extraction Label labelWriteUTF8 = new Label(restComp, SWT.RIGHT); labelWriteUTF8.setText(Labels.getString("AdvancedSettingsDialog.writeUTF8")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelWriteUTF8.setLayoutData(data); buttonWriteUtf8 = new Button(restComp, SWT.CHECK); buttonWriteUtf8.setSelection(config.getBoolean(Config.WRITE_UTF8)); // European Dates Label labelEuropeanDates = new Label(restComp, SWT.RIGHT); labelEuropeanDates.setText( Labels.getString("AdvancedSettingsDialog.useEuropeanDateFormat")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelEuropeanDates.setLayoutData(data); buttonEuroDates = new Button(restComp, SWT.CHECK); buttonEuroDates.setSelection(config.getBoolean(Config.EURO_DATES)); // Field truncation Label labelTruncateFields = new Label(restComp, SWT.RIGHT); labelTruncateFields.setText(Labels.getString("AdvancedSettingsDialog.allowFieldTruncation")); data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelTruncateFields.setLayoutData(data); buttonTruncateFields = new Button(restComp, SWT.CHECK); buttonTruncateFields.setSelection(config.getBoolean(Config.TRUNCATE_FIELDS)); Label labelCsvCommand = new Label(restComp, SWT.RIGHT); labelCsvCommand.setText(Labels.getString("AdvancedSettingsDialog.useCommaAsCsvDelimiter")); data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelCsvCommand.setLayoutData(data); buttonCsvComma = new Button(restComp, SWT.CHECK); buttonCsvComma.setSelection(config.getBoolean(Config.CSV_DELIMETER_COMMA)); Label labelTabCommand = new Label(restComp, SWT.RIGHT); labelTabCommand.setText(Labels.getString("AdvancedSettingsDialog.useTabAsCsvDelimiter")); data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelTabCommand.setLayoutData(data); buttonCsvTab = new Button(restComp, SWT.CHECK); buttonCsvTab.setSelection(config.getBoolean(Config.CSV_DELIMETER_TAB)); Label labelOtherCommand = new Label(restComp, SWT.RIGHT); labelOtherCommand.setText(Labels.getString("AdvancedSettingsDialog.useOtherAsCsvDelimiter")); data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelOtherCommand.setLayoutData(data); buttonCsvOther = new Button(restComp, SWT.CHECK); buttonCsvOther.setSelection(config.getBoolean(Config.CSV_DELIMETER_OTHER)); Label labelOtherDelimiterValue = new Label(restComp, SWT.RIGHT); labelOtherDelimiterValue.setText( Labels.getString("AdvancedSettingsDialog.csvOtherDelimiterValue")); data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelOtherDelimiterValue.setLayoutData(data); textSplitterValue = new Text(restComp, SWT.BORDER); textSplitterValue.setText(config.getString(Config.CSV_DELIMETER_OTHER_VALUE)); data = new GridData(); data.widthHint = 25; textSplitterValue.setLayoutData(data); // Enable Bulk API Setting Label labelUseBulkApi = new Label(restComp, SWT.RIGHT); labelUseBulkApi.setText(Labels.getString("AdvancedSettingsDialog.useBulkApi")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelUseBulkApi.setLayoutData(data); boolean useBulkAPI = config.getBoolean(Config.BULK_API_ENABLED); buttonUseBulkApi = new Button(restComp, SWT.CHECK); buttonUseBulkApi.setSelection(useBulkAPI); buttonUseBulkApi.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { super.widgetSelected(e); boolean enabled = buttonUseBulkApi.getSelection(); // update batch size when this setting changes int newDefaultBatchSize = controller.getConfig().getDefaultBatchSize(enabled); logger.info("Setting batch size to " + newDefaultBatchSize); textBatch.setText(String.valueOf(newDefaultBatchSize)); // make sure the appropriate check boxes are enabled or disabled initBulkApiSetting(enabled); } }); // Bulk API serial concurrency mode setting Label labelBulkApiSerialMode = new Label(restComp, SWT.RIGHT); labelBulkApiSerialMode.setText( Labels.getString("AdvancedSettingsDialog.bulkApiSerialMode")); // $NON-NLS-1$ labelBulkApiSerialMode.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); buttonBulkApiSerialMode = new Button(restComp, SWT.CHECK); buttonBulkApiSerialMode.setSelection(config.getBoolean(Config.BULK_API_SERIAL_MODE)); buttonBulkApiSerialMode.setEnabled(useBulkAPI); // Bulk API serial concurrency mode setting Label labelBulkApiZipContent = new Label(restComp, SWT.RIGHT); labelBulkApiZipContent.setText( Labels.getString("AdvancedSettingsDialog.bulkApiZipContent")); // $NON-NLS-1$ labelBulkApiZipContent.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); buttonBulkApiZipContent = new Button(restComp, SWT.CHECK); buttonBulkApiZipContent.setSelection(config.getBoolean(Config.BULK_API_SERIAL_MODE)); buttonBulkApiZipContent.setEnabled(useBulkAPI); // timezone textTimezone = createTextInput( restComp, "AdvancedSettingsDialog.timezone", Config.TIMEZONE, TimeZone.getDefault().getID(), 200); // proxy Host Label labelProxyHost = new Label(restComp, SWT.RIGHT); labelProxyHost.setText(Labels.getString("AdvancedSettingsDialog.proxyHost")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelProxyHost.setLayoutData(data); textProxyHost = new Text(restComp, SWT.BORDER); textProxyHost.setText(config.getString(Config.PROXY_HOST)); data = new GridData(); data.widthHint = 250; textProxyHost.setLayoutData(data); // Proxy Port Label labelProxyPort = new Label(restComp, SWT.RIGHT); labelProxyPort.setText(Labels.getString("AdvancedSettingsDialog.proxyPort")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelProxyPort.setLayoutData(data); textProxyPort = new Text(restComp, SWT.BORDER); textProxyPort.setText(config.getString(Config.PROXY_PORT)); textProxyPort.setTextLimit(4); textProxyPort.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { event.doit = Character.isISOControl(event.character) || Character.isDigit(event.character); } }); data = new GridData(); data.widthHint = 25; textProxyPort.setLayoutData(data); // Proxy Username Label labelProxyUsername = new Label(restComp, SWT.RIGHT); labelProxyUsername.setText(Labels.getString("AdvancedSettingsDialog.proxyUser")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelProxyUsername.setLayoutData(data); textProxyUsername = new Text(restComp, SWT.BORDER); textProxyUsername.setText(config.getString(Config.PROXY_USERNAME)); data = new GridData(); data.widthHint = 120; textProxyUsername.setLayoutData(data); // Proxy Password Label labelProxyPassword = new Label(restComp, SWT.RIGHT); labelProxyPassword.setText( Labels.getString("AdvancedSettingsDialog.proxyPassword")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelProxyPassword.setLayoutData(data); textProxyPassword = new Text(restComp, SWT.BORDER | SWT.PASSWORD); textProxyPassword.setText(config.getString(Config.PROXY_PASSWORD)); data = new GridData(); data.widthHint = 120; textProxyPassword.setLayoutData(data); // proxy NTLM domain Label labelProxyNtlmDomain = new Label(restComp, SWT.RIGHT); labelProxyNtlmDomain.setText( Labels.getString("AdvancedSettingsDialog.proxyNtlmDomain")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelProxyNtlmDomain.setLayoutData(data); textProxyNtlmDomain = new Text(restComp, SWT.BORDER); textProxyNtlmDomain.setText(config.getString(Config.PROXY_NTLM_DOMAIN)); data = new GridData(); data.widthHint = 250; textProxyNtlmDomain.setLayoutData(data); ////////////////////////////////////////////////// // Row to start At Label blankAgain = new Label(restComp, SWT.NONE); data = new GridData(); data.horizontalSpan = 2; blankAgain.setLayoutData(data); // Row to start AT Label labelLastRow = new Label(restComp, SWT.NONE); String lastBatch = controller.getConfig().getString(LastRun.LAST_LOAD_BATCH_ROW); if (lastBatch.equals("")) { // $NON-NLS-1$ lastBatch = "0"; // $NON-NLS-1$ } labelLastRow.setText( Labels.getFormattedString("AdvancedSettingsDialog.lastBatch", lastBatch)); // $NON-NLS-1$ data = new GridData(); data.horizontalSpan = 2; labelLastRow.setLayoutData(data); Label labelRowToStart = new Label(restComp, SWT.RIGHT); labelRowToStart.setText(Labels.getString("AdvancedSettingsDialog.startRow")); // $NON-NLS-1$ data = new GridData(GridData.HORIZONTAL_ALIGN_END); labelRowToStart.setLayoutData(data); textRowToStart = new Text(restComp, SWT.BORDER); textRowToStart.setText(config.getString(Config.LOAD_ROW_TO_START_AT)); data = new GridData(); data.widthHint = 75; textRowToStart.setLayoutData(data); textRowToStart.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { event.doit = Character.isISOControl(event.character) || Character.isDigit(event.character); } }); // now that we've created all the buttons, make sure that buttons dependent on the bulk api // setting are enabled or disabled appropriately initBulkApiSetting(useBulkAPI); // the bottow separator Label labelSeparatorBottom = new Label(restComp, SWT.SEPARATOR | SWT.HORIZONTAL); data = new GridData(GridData.FILL_HORIZONTAL); data.horizontalSpan = 2; labelSeparatorBottom.setLayoutData(data); // ok cancel buttons new Label(restComp, SWT.NONE); // END MIDDLE COMPONENT // START BOTTOM COMPONENT Composite buttonComp = new Composite(restComp, SWT.NONE); data = new GridData(GridData.HORIZONTAL_ALIGN_END); buttonComp.setLayoutData(data); buttonComp.setLayout(new GridLayout(2, false)); // Create the OK button and add a handler // so that pressing it will set input // to the entered value Button ok = new Button(buttonComp, SWT.PUSH | SWT.FLAT); ok.setText(Labels.getString("UI.ok")); // $NON-NLS-1$ ok.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { Config config = controller.getConfig(); // set the configValues config.setValue(Config.HIDE_WELCOME_SCREEN, buttonHideWelcomeScreen.getSelection()); config.setValue(Config.INSERT_NULLS, buttonNulls.getSelection()); config.setValue(Config.LOAD_BATCH_SIZE, textBatch.getText()); if (!buttonCsvComma.getSelection() && !buttonCsvTab.getSelection() && (!buttonCsvOther.getSelection() || textSplitterValue.getText() == null || textSplitterValue.getText().length() == 0)) { return; } config.setValue(Config.CSV_DELIMETER_OTHER_VALUE, textSplitterValue.getText()); config.setValue(Config.CSV_DELIMETER_COMMA, buttonCsvComma.getSelection()); config.setValue(Config.CSV_DELIMETER_TAB, buttonCsvTab.getSelection()); config.setValue(Config.CSV_DELIMETER_OTHER, buttonCsvOther.getSelection()); config.setValue(Config.EXTRACT_REQUEST_SIZE, textQueryBatch.getText()); config.setValue(Config.ENDPOINT, textEndpoint.getText()); config.setValue(Config.ASSIGNMENT_RULE, textRule.getText()); config.setValue(Config.LOAD_ROW_TO_START_AT, textRowToStart.getText()); config.setValue(Config.RESET_URL_ON_LOGIN, buttonResetUrl.getSelection()); config.setValue(Config.NO_COMPRESSION, buttonCompression.getSelection()); config.setValue(Config.TRUNCATE_FIELDS, buttonTruncateFields.getSelection()); config.setValue(Config.TIMEOUT_SECS, textTimeout.getText()); config.setValue( Config.ENABLE_EXTRACT_STATUS_OUTPUT, buttonOutputExtractStatus.getSelection()); config.setValue(Config.READ_UTF8, buttonReadUtf8.getSelection()); config.setValue(Config.WRITE_UTF8, buttonWriteUtf8.getSelection()); config.setValue(Config.EURO_DATES, buttonEuroDates.getSelection()); config.setValue(Config.TIMEZONE, textTimezone.getText()); config.setValue(Config.PROXY_HOST, textProxyHost.getText()); config.setValue(Config.PROXY_PASSWORD, textProxyPassword.getText()); config.setValue(Config.PROXY_PORT, textProxyPort.getText()); config.setValue(Config.PROXY_USERNAME, textProxyUsername.getText()); config.setValue(Config.PROXY_NTLM_DOMAIN, textProxyNtlmDomain.getText()); config.setValue(Config.BULK_API_ENABLED, buttonUseBulkApi.getSelection()); config.setValue(Config.BULK_API_SERIAL_MODE, buttonBulkApiSerialMode.getSelection()); config.setValue(Config.BULK_API_ZIP_CONTENT, buttonBulkApiZipContent.getSelection()); controller.saveConfig(); controller.logout(); input = Labels.getString("UI.ok"); // $NON-NLS-1$ shell.close(); } }); data = new GridData(); data.widthHint = 75; ok.setLayoutData(data); // Create the cancel button and add a handler // so that pressing it will set input to null Button cancel = new Button(buttonComp, SWT.PUSH | SWT.FLAT); cancel.setText(Labels.getString("UI.cancel")); // $NON-NLS-1$ cancel.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { input = null; shell.close(); } }); // END BOTTOM COMPONENT data = new GridData(); data.widthHint = 75; cancel.setLayoutData(data); // Set the OK button as the default, so // user can type input and press Enter // to dismiss shell.setDefaultButton(ok); // Set the child as the scrolled content of the ScrolledComposite sc.setContent(container); // Set the minimum size sc.setMinSize(768, 1024); // Expand both horizontally and vertically sc.setExpandHorizontal(true); sc.setExpandVertical(true); }
private void createGroup() { try { final GridLayout gridLayout_3 = new GridLayout(); gridLayout_3.verticalSpacing = 10; gridLayout_3.marginWidth = 10; gridLayout_3.marginTop = 10; gridLayout_3.marginRight = 10; gridLayout_3.marginLeft = 10; gridLayout_3.marginHeight = 10; gridLayout_3.marginBottom = 10; gridLayout_3.numColumns = 3; final Group composite = JOE_G_DetailForm_MainGroup.Control(new Group(this, SWT.NONE)); composite.addDisposeListener( new DisposeListener() { public void widgetDisposed(final DisposeEvent e) { if (butApply.isEnabled()) { save(); } } }); composite.setLayout(new GridLayout()); final GridData gridData_6 = new GridData(GridData.FILL, GridData.CENTER, true, true, 3, 1); gridData_6.heightHint = 31; composite.setLayoutData(gridData_6); parameterGroup = JOE_G_DetailForm_ParameterGroup.Control(new Group(composite, SWT.NONE)); parameterGroup.setEnabled(false); // parameterGroup.setText("Detail Parameter"); final GridData gridData_3 = new GridData(GridData.FILL, GridData.FILL, true, true); gridData_3.heightHint = 239; parameterGroup.setLayoutData(gridData_3); final GridLayout gridLayout_2 = new GridLayout(); gridLayout_2.numColumns = 6; parameterGroup.setLayout(gridLayout_2); @SuppressWarnings("unused") final Label nameLabel = JOE_L_Name.Control(new Label(parameterGroup, SWT.NONE)); // nameLabel.setText("Name"); txtName = JOE_T_DetailForm_Name.Control(new Text(parameterGroup, SWT.BORDER)); // txtName.addFocusListener(new FocusAdapter() { // public void focusGained(final FocusEvent e) { // txtName.selectAll(); // } // }); txtName.addModifyListener( new ModifyListener() { public void modifyText(final ModifyEvent e) { if (!txtName.getText().equals("") && (tableParams.getSelectionCount() == 0 || (tableParams.getSelectionCount() > 0 && !tableParams .getSelection()[0] .getText(0) .equalsIgnoreCase(txtName.getText())))) { isEditableParam = true; butApplyParam.setEnabled(isEditableParam); txtValue.setEnabled(true); butText.setEnabled(true); paramText.setText(""); txtParamNote.setEnabled(true); } else { butText.setEnabled(false); } } }); txtName.addKeyListener( new KeyAdapter() { public void keyPressed(final KeyEvent e) { if (e.keyCode == SWT.CR && !txtName.getText().equals("")) { addParam(); } } }); txtName.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); txtName.setFocus(); @SuppressWarnings("unused") final Label valueLabel = JOE_L_Value.Control(new Label(parameterGroup, SWT.NONE)); // valueLabel.setText("Value"); txtValue = JOE_T_DetailForm_Value.Control(new Text(parameterGroup, SWT.BORDER)); // txtValue.addFocusListener(new FocusAdapter() { // public void focusGained(final FocusEvent e) { // txtValue.selectAll(); // } // }); txtValue.addKeyListener( new KeyAdapter() { public void keyPressed(final KeyEvent e) { if (e.keyCode == SWT.CR && !txtName.getText().equals("")) { addParam(); } } }); txtValue.addModifyListener( new ModifyListener() { public void modifyText(final ModifyEvent e) { if (!txtName.getText().equals("") && (tableParams.getSelectionCount() == 0 || (tableParams.getSelectionCount() > 0 && !tableParams .getSelection()[0] .getText(1) .equalsIgnoreCase(txtValue.getText())))) { isEditableParam = true; butApplyParam.setEnabled(isEditableParam); if (txtValue.getText().trim().length() > 0) butText.setEnabled(false); else butText.setEnabled(true); } } }); txtValue.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false)); butText = JOE_B_DetailForm_Text.Control(new Button(parameterGroup, SWT.NONE)); butText.setEnabled(false); butText.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { String ntext = ""; if (tableParams.getSelectionCount() > 0) { TableItem item = tableParams.getSelection()[0]; ntext = item.getText(2); } String text = sos.scheduler.editor.app.Utils.showClipboard(ntext, getShell(), true, ""); if (text != null && !text.trim().equalsIgnoreCase(ntext)) { paramText.setText(text); txtValue.setText(""); txtValue.setEnabled(false); butText.setEnabled(true); addParam(); } else if (text == null) { txtValue.setEnabled(true); butText.setEnabled(true); } else { txtValue.setEnabled(true); butText.setEnabled(false); } butApply.setEnabled(true); } }); // butText.setText("Text"); butApplyParam = JOE_B_DetailForm_ApplyParam.Control(new Button(parameterGroup, SWT.NONE)); butApplyParam.setEnabled(isEditableParam); butApplyParam.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { addParam(); } }); final GridData gridData_9 = new GridData(GridData.FILL, GridData.BEGINNING, false, false); butApplyParam.setLayoutData(gridData_9); // butApplyParam.setText("Apply"); tableParams = JOE_Tbl_DetailForm_Params.Control( new Table(parameterGroup, SWT.FULL_SELECTION | SWT.BORDER)); tableParams.setEnabled(false); tableParams.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { if (tableParams.getSelectionCount() > 0) { TableItem item = tableParams.getSelection()[0]; txtName.setText(item.getText(0)); // param value ist angegeben if (item.getText(1) != null && item.getText(1).trim().length() > 0) { paramText.setText(""); txtValue.setText(item.getText(1)); txtValue.setEnabled(true); butText.setEnabled(false); } // param Textknoten ist angegeben if (item.getText(2) != null && item.getText(2).trim().length() > 0) { paramText.setText(item.getText(2)); txtValue.setText(""); txtValue.setEnabled(false); butText.setEnabled(true); } if (item.getText(1).trim().equals("") && item.getText(2).trim().equals("")) { paramText.setText(""); txtValue.setText(""); txtValue.setEnabled(true); butText.setEnabled(true); } txtParamNote.setText( detailListener.getParamNote(item.getText(0), comboLanguage.getText())); butRemove.setEnabled(true); txtParamNote.setEnabled(true); isEditableParam = false; } else { butRemove.setEnabled(false); } } }); tableParams.setLinesVisible(true); tableParams.setHeaderVisible(true); final GridData gridData_4 = new GridData(GridData.FILL, GridData.FILL, true, true, 5, 7); tableParams.setLayoutData(gridData_4); final TableColumn newColumnTableColumn = JOE_TCl_DetailForm_NameColumn.Control(new TableColumn(tableParams, SWT.NONE)); // newColumnTableColumn.setText("Name"); newColumnTableColumn.setWidth(118); newColumnTableColumn.addControlListener( new ControlAdapter() { public void controlResized(final ControlEvent e) { w.saveTableColumn("tableParams", newColumnTableColumn); } }); w.restoreTableColumn("tableParams", newColumnTableColumn, 118); final TableColumn newColumnTableColumn_1 = JOE_TCl_DetailForm_ValueColumn.Control(new TableColumn(tableParams, SWT.NONE)); // newColumnTableColumn_1.setText("Value"); newColumnTableColumn_1.setWidth(150); newColumnTableColumn_1.addControlListener( new ControlAdapter() { public void controlResized(final ControlEvent e) { w.saveTableColumn("tableParams", newColumnTableColumn_1); } }); w.restoreTableColumn("tableParams", newColumnTableColumn_1, 150); final TableColumn newColumnTableColumn_2 = JOE_TCl_DetailForm_TextColumn.Control(new TableColumn(tableParams, SWT.NONE)); // newColumnTableColumn_2.setText("Text"); newColumnTableColumn_2.setWidth(100); newColumnTableColumn_2.addControlListener( new ControlAdapter() { public void controlResized(final ControlEvent e) { w.saveTableColumn("tableParams", newColumnTableColumn_2); } }); w.restoreTableColumn("tableParams", newColumnTableColumn_2, 100); final Button butNew = JOE_B_DetailForm_New.Control(new Button(parameterGroup, SWT.NONE)); butNew.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { txtName.setText(""); txtValue.setText(""); paramText.setText(""); txtValue.setEnabled(true); paramText.setEnabled(true); tableParams.deselectAll(); txtParamNote.setText(""); } }); butNew.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); // butNew.setText("New"); final Composite composite_2 = JOE_Composite1.Control(new Composite(parameterGroup, SWT.NONE)); final GridData gridData_2_1 = new GridData(GridData.CENTER, GridData.CENTER, false, false); gridData_2_1.heightHint = 67; composite_2.setLayoutData(gridData_2_1); composite_2.setLayout(new GridLayout()); butUp = JOE_B_DetailForm_Up.Control(new Button(composite_2, SWT.NONE)); butUp.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { detailListener.changeUp(tableParams); } }); butUp.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); butUp.setImage(ResourceManager.getImageFromResource("/sos/scheduler/editor/icon_up.gif")); butDown = JOE_B_DetailForm_Down.Control(new Button(composite_2, SWT.NONE)); butDown.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { detailListener.changeDown(tableParams); } }); butDown.setLayoutData(new GridData(GridData.CENTER, GridData.CENTER, false, false)); butDown.setImage(ResourceManager.getImageFromResource("/sos/scheduler/editor/icon_down.gif")); final Button parameterButton = JOE_B_DetailForm_Wizard.Control(new Button(parameterGroup, SWT.NONE)); parameterButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { startWizzard(); } }); // parameterButton.setVisible(type != Editor.DETAILS); parameterButton.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); // parameterButton.setText("Wizard"); butRemove = JOE_B_DetailForm_Remove.Control(new Button(parameterGroup, SWT.NONE)); butRemove.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { if (tableParams.getSelectionCount() > 0) { detailListener.deleteParameter(tableParams, tableParams.getSelectionIndex()); txtParamNote.setText(""); txtName.setText(""); txtValue.setText(""); tableParams.deselectAll(); butRemove.setEnabled(false); txtParamNote.setText(""); isEditableParam = false; butApplyParam.setEnabled(isEditableParam); butApply.setEnabled(isEditable); txtName.setFocus(); if (gui != null) gui.updateParam(); } } }); final GridData gridData_8 = new GridData(GridData.FILL, GridData.BEGINNING, false, true); gridData_8.widthHint = 64; gridData_8.minimumWidth = 50; butRemove.setLayoutData(gridData_8); // butRemove.setText("Remove"); final Button butTemp = JOE_B_DetailForm_TempDocumentation.Control(new Button(parameterGroup, SWT.NONE)); butTemp.setLayoutData(new GridData()); // butTemp.setText("Documentation"); butTemp.setVisible(false); butApply = JOE_B_DetailForm_ApplyDetails.Control(new Button(parameterGroup, SWT.NONE)); butApply.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); butApply.setEnabled(isEditable); FontData fontDatas[] = butApply.getFont().getFontData(); FontData data = fontDatas[0]; butApply.setFont(new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD)); butApply.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { save(); } }); // butApply.setText("Apply Details"); cancelButton = JOE_B_DetailForm_Cancel.Control(new Button(parameterGroup, SWT.NONE)); cancelButton.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); cancelButton.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { saveWindowPosAndSize(); if (butApply.getEnabled()) { // int count = MainWindow.message(getShell(), // sos.scheduler.editor.app.Messages.getLabel("detailform.close"), SWT.ICON_WARNING // | SWT.OK int count = MainWindow.message( getShell(), JOE_M_0008.label(), SWT.ICON_WARNING | SWT.OK | SWT.CANCEL); if (count != SWT.OK) { return; } } getShell().dispose(); } }); // cancelButton.setText("Cancel"); txtParamNote = JOE_T_DetailForm_JobChainNote.Control( new Text( parameterGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.H_SCROLL)); txtParamNote.setEnabled(false); txtParamNote.addVerifyListener( new VerifyListener() { public void verifyText(final VerifyEvent e) { if (e.keyCode == 8 || e.keyCode == 127) { isEditableParam = true; butApplyParam.setEnabled(isEditableParam); } } }); txtParamNote.addModifyListener( new ModifyListener() { public void modifyText(final ModifyEvent e) { changeParameNote(); } }); final GridData gridData_5 = new GridData(GridData.FILL, GridData.FILL, true, true, 5, 3); gridData_5.heightHint = 73; txtParamNote.setLayoutData(gridData_5); comboLanguage = JOE_Cbo_DetailForm_Language.Control(new Combo(parameterGroup, SWT.READ_ONLY)); comboLanguage.setItems(new String[] {"de", "en"}); final GridData gridData_7 = new GridData(GridData.FILL, GridData.BEGINNING, false, true); comboLanguage.setLayoutData(gridData_7); comboLanguage.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { txtJobchainNote.setText(detailListener.getNote(comboLanguage.getText())); if (tableParams.getSelectionCount() > 0) { TableItem item = tableParams.getSelection()[0]; txtParamNote.setText( detailListener.getParamNote(item.getText(0), comboLanguage.getText())); } else if (txtName.getText() != null && txtName.getText().length() > 0) { txtParamNote.setText( detailListener.getParamNote(txtName.getText(), comboLanguage.getText())); } else if (txtParamNote.getText() != null && txtParamNote.getText().length() > 0) { txtParamNote.setText(""); } isEditable = false; isEditableParam = false; // butApply.setEnabled(isEditable); butApplyParam.setEnabled(isEditableParam); butRemove.setEnabled(false); } }); comboLanguage.select(0); butRefreshWizzardNoteParam = JOE_B_DetailForm_RefreshWizardNoteParam.Control(new Text(parameterGroup, SWT.CHECK)); butRefreshWizzardNoteParam.addModifyListener( new ModifyListener() { public void modifyText(final ModifyEvent e) { refreshTable(); } }); butRefreshWizzardNoteParam.setVisible(false); butRefreshWizzardNoteParam.setLayoutData(new GridData()); paramText = JOE_T_DetailForm_Param.Control(new Text(parameterGroup, SWT.BORDER)); paramText.setVisible(false); final GridData gridData_14 = new GridData(GridData.CENTER, GridData.BEGINNING, false, false); gridData_14.widthHint = 27; paramText.setLayoutData(gridData_14); jobChainGroup = JOE_G_DetailForm_NoteGroup.Control(new Group(parameterGroup, SWT.NONE)); jobChainGroup.setEnabled(false); // jobChainGroup.setText("Note"); final GridLayout gridLayout_1 = new GridLayout(); gridLayout_1.numColumns = 2; jobChainGroup.setLayout(gridLayout_1); final GridData gridData = new GridData(GridData.FILL, GridData.FILL, false, false, 6, 1); gridData.horizontalIndent = -1; jobChainGroup.setLayoutData(gridData); txtJobchainNote = JOE_T_DetailForm_JobChainNote.Control( new Text( jobChainGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.H_SCROLL)); txtJobchainNote.addModifyListener( new ModifyListener() { public void modifyText(final ModifyEvent e) { if (detailListener != null) { isEditable = true; if (gui != null) gui.updateNote(); detailListener.setNote(txtJobchainNote.getText(), comboLanguage.getText()); butApply.setEnabled(isEditable); } } }); final GridData gridData_2 = new GridData(GridData.FILL, GridData.FILL, true, false, 1, 2); txtJobchainNote.setLayoutData(gridData_2); butXML = JOE_B_DetailForm_XML.Control(new Button(jobChainGroup, SWT.NONE)); butXML.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, false, false)); butXML.setEnabled(false); butXML.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { try { if (dom != null && dom.isChanged()) { // MainWindow.message("Please save jobchain configuration file before // opening XML Editor.", SWT.ICON_ERROR); MainWindow.message(JOE_M_0020.label(), SWT.ICON_ERROR); return; } if (dom == null && butApply.isEnabled()) { // ungespeichert // int c = MainWindow.message("Should the current values be saved?", SWT.YES // | SWT.NO | SWT.ICON_ERROR); int c = MainWindow.message(JOE_M_0021.label(), SWT.YES | SWT.NO | SWT.ICON_ERROR); if (c == SWT.YES) detailListener.save(); } if (type == Editor.JOB_CHAINS) { DetailXMLEditorDialogForm dialog = new DetailXMLEditorDialogForm( detailListener.getConfigurationFilename(), jobChainname, state, _orderId, type, isLifeElement, path); dialog.showXMLEditor(); getShell().dispose(); } else { if (dom != null && dom.getFilename() != null && dom.getFilename().length() > 0) { DetailXMLEditorDialogForm dialog = new DetailXMLEditorDialogForm(dom, type, isLifeElement, path); dialog.setConfigurationData(confListener, tree, parent); dialog.showXMLEditor(); } else { // MainWindow.message("Please save jobchain configuration file before // opening XML Editor.", SWT.ICON_ERROR); MainWindow.message(JOE_M_0020.label(), SWT.ICON_ERROR); } } } catch (Exception ex) { try { // System.out.println("..error in " + sos.util.SOSClassUtil.getMethodName() // + ": " + ex.getMessage()); System.out.println( JOE_M_0010.params(sos.util.SOSClassUtil.getMethodName(), ex.getMessage())); new ErrorLog(JOE_M_0002.params(sos.util.SOSClassUtil.getMethodName()), ex); } catch (Exception ee) { // tu nichts } } } }); // butXML.setText("Open XML"); butDocumentation = JOE_B_DetailForm_Documentation.Control(new Button(jobChainGroup, SWT.NONE)); butDocumentation.setLayoutData( new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false)); butDocumentation.addSelectionListener( new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { String filename = null; try { if (type == Editor.JOB_CHAINS) { filename = detailListener.getConfigurationFilename(); } else { if (dom != null) { filename = dom.getFilename(); } } if (filename != null && filename.length() > 0) { File file = new File(filename); if (file.exists()) { // Runtime.getRuntime().exec("cmd /C START iExplore ".concat(filename)); Program prog = Program.findProgram("html"); if (prog != null) { prog.execute(new File(filename).toURL().toString()); } else { String[] split = Options.getBrowserExec( new File(filename).toURL().toString(), Options.getLanguage()); Runtime.getRuntime().exec(split); } } else MainWindow.message(JOE_M_0013.params(file.getCanonicalPath()), SWT.ICON_ERROR); // MainWindow.message("Missing documentation " + file.getCanonicalPath(), // SWT.ICON_ERROR); } else MainWindow.message(JOE_M_0012.label(), SWT.ICON_ERROR); // MainWindow.message("Please save jobchain configuration before opening // documentation.", SWT.ICON_ERROR); } catch (Exception ex) { try { // System.out.println("..could not open file " + filename + " " + // ex.getMessage()); System.out.println( JOE_M_0011.params( sos.util.SOSClassUtil.getMethodName(), filename, ex.getMessage())); new ErrorLog( JOE_M_0011.params( sos.util.SOSClassUtil.getMethodName(), filename, ex.getMessage())); } catch (Exception ee) { // tu nichts } } } }); // butDocumentation.setText("Documentation"); final Label fileLabel = JOE_L_DetailForm_JobDocumentation.Control(new Label(parameterGroup, SWT.NONE)); fileLabel.setLayoutData(new GridData()); // fileLabel.setText("Job Documentation: "); txtParamsFile = JOE_T_DetailForm_ParamsFile.Control(new Text(parameterGroup, SWT.BORDER)); // txtParamsFile.addFocusListener(new FocusAdapter() { // public void focusGained(final FocusEvent e) { // txtParamsFile.selectAll(); // } // }); txtParamsFile.addModifyListener( new ModifyListener() { public void modifyText(final ModifyEvent e) { detailListener.setParamsFileName(txtParamsFile.getText()); if (gui != null) gui.updateNote(); butApply.setEnabled(isEditable); } }); txtParamsFile.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false, 4, 1)); statusBar = JOE_L_DetailForm_ConfigFile.Control(new Label(composite, SWT.BORDER)); final GridData gridData_11 = new GridData(GridData.FILL, GridData.END, false, false); gridData_11.widthHint = 496; gridData_11.heightHint = 18; statusBar.setLayoutData(gridData_11); // statusBar.setText("Configurations File:"); setToolTipText(); if (type == Editor.JOB_CHAINS) setEnabled_(false); setVisibility(); } catch (Exception e) { try { // new ErrorLog("error in " + sos.util.SOSClassUtil.getMethodName() + "cause: " + // e.toString(), e); new ErrorLog(JOE_M_0010.params(sos.util.SOSClassUtil.getMethodName(), e.toString()), e); } catch (Exception ee) { // tu nichts } } }
@Override public void createPartControl(Composite parent) { // final boolean canExecute = SecurityFacade.getInstance().canExecute( // SECURITY_ID, false); GridLayout grid = new GridLayout(); grid.numColumns = 5; parent.setLayout(grid); GridData gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION; Table table = new Table(parent, style); gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 5, 1); table.setLayoutData(gridData); messageTable = new MessageTable(table); Button butAlarm = new Button(parent, SWT.PUSH); butAlarm.setText(Messages.JMSView_SendButton1); gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridData.widthHint = 80; butAlarm.setLayoutData(gridData); butAlarm.setEnabled(true); Label alarmTopicLabel = new Label(parent, SWT.NONE); alarmTopicLabel.setText(Messages.JMSView_Labels); final Text alarmTopic = new Text(parent, SWT.BORDER); alarmTopic.setText("ALARM"); // $NON-NLS-1$ gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridData.widthHint = 160; alarmTopic.setLayoutData(gridData); Label alarmCountLabel = new Label(parent, SWT.NONE); alarmCountLabel.setText(Messages.JMSView_Numbers); final Text alarmCount = new Text(parent, SWT.BORDER); alarmCount.setText("1"); // $NON-NLS-1$ alarmCount.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { if (e.character == SWT.DEL || e.character == SWT.BS) { e.doit = true; } else { try { Integer.parseInt(e.text); e.doit = true; } catch (NumberFormatException nfe) { e.doit = false; } } } }); gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridData.widthHint = 80; alarmCount.setLayoutData(gridData); Button butLog = new Button(parent, SWT.PUSH); butLog.setText(Messages.JMSView_SendButton2); gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridData.widthHint = 80; butLog.setLayoutData(gridData); butLog.setEnabled(true); Label logTopicLabel = new Label(parent, SWT.NONE); logTopicLabel.setText(Messages.JMSView_Labels); final Text logTopic = new Text(parent, SWT.BORDER); logTopic.setText("LOG"); // $NON-NLS-1$ gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridData.widthHint = 160; logTopic.setLayoutData(gridData); Label logCountLabel = new Label(parent, SWT.NONE); logCountLabel.setText(Messages.JMSView_Numbers); final Text logCount = new Text(parent, SWT.BORDER); logCount.setText("1"); // $NON-NLS-1$ logCount.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { if (e.character == SWT.DEL || e.character == SWT.BS) { e.doit = true; } else { try { Integer.parseInt(e.text); e.doit = true; } catch (NumberFormatException nfe) { e.doit = false; } } } }); gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gridData.widthHint = 80; logCount.setLayoutData(gridData); butAlarm.addSelectionListener(new SendButtonSelectionListener(alarmTopic, alarmCount)); butLog.addSelectionListener(new SendButtonSelectionListener(logTopic, logCount)); JmsSenderPlugin.getDefault() .getPluginPreferences() .addPropertyChangeListener(propertyChangeListener); parent.pack(); }
private Control createText(Composite parent) { text = new Text(parent, textStyle); text.setTextLimit(7); text.addFocusListener( new FocusListener() { public void focusLost(FocusEvent e) { Display.getCurrent() .asyncExec( new Runnable() { public void run() { if (text == null || text.isDisposed()) return; if (isAncestorShell(text.getShell(), Display.getCurrent().getActiveShell())) return; textEditingFinished(); } }); } public void focusGained(FocusEvent e) {} }); text.addTraverseListener( new TraverseListener() { public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_ESCAPE) { fireCancelEditing(); e.doit = false; } else if (e.detail == SWT.TRAVERSE_RETURN) { textEditingFinished(); e.doit = false; } } }); text.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { if (e.keyCode == 27 && e.stateMask == 0) { fireCancelEditing(); e.doit = false; } else if (e.keyCode == 13) { textEditingFinished(); e.doit = false; } else { if (COLOR_NONE_VALUE.equals(e.text)) { return; } char[] charArray = e.text.toCharArray(); for (char character : charArray) { boolean isValid = character == '#' || (character >= 'A' && character <= 'F') || (character >= 'a' && character <= 'f') || (character >= '0' && character <= '9'); if (!isValid) { e.doit = false; return; } } } } }); text.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { if (modifying) return; String value = text.getText(); if ((value == null || value.lastIndexOf('#') != 0) && !COLOR_NONE_VALUE.equals(value)) { value = ""; // $NON-NLS-1$ } changeValue("".equals(value) ? null : value); // $NON-NLS-1$ } }); text.addKeyListener( new KeyListener() { public void keyReleased(KeyEvent e) {} public void keyPressed(KeyEvent e) { if (e.character == '\r') { textEditingFinished(); e.doit = false; } } }); return text; }
/** Create contents of the dialog. */ private void createContents() { shell = new Shell(getParent(), getStyle()); shell.setImage( ResourceManager.getPluginImage("kr.re.kisti.amga.editor", "icons/elcl16/save.png")); shell.setLocation(getParent().getLocation().x + 50, getParent().getLocation().y + 50); shell.setSize(400, 245); shell.setText("File(xls, txt) Save As..."); shell.setLayout(new GridLayout(1, false)); Group grpOutputFormat = new Group(shell, SWT.NONE); grpOutputFormat.setText("Output Format"); grpOutputFormat.setLayout(new GridLayout(3, false)); GridData gd_grpOutputFormat = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_grpOutputFormat.heightHint = 136; grpOutputFormat.setLayoutData(gd_grpOutputFormat); combo_type = new Combo(grpOutputFormat, SWT.READ_ONLY); combo_type.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { switch (combo_type.getSelectionIndex()) { case 0: combo_string.setEnabled(false); break; case 1: combo_string.setEnabled(true); break; default: break; } } }); combo_type.setItems(new String[] {"Excel File", "Delimited Text"}); GridData gd_combo_type = new GridData(SWT.FILL, SWT.CENTER, true, false, 3, 1); gd_combo_type.widthHint = 253; combo_type.setLayoutData(gd_combo_type); combo_type.select(0); Label lblStringQuoteCharacher = new Label(grpOutputFormat, SWT.NONE); lblStringQuoteCharacher.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblStringQuoteCharacher.setText("String quote characher : "); combo_string = new Combo(grpOutputFormat, SWT.READ_ONLY); combo_string.setEnabled(false); combo_string.setItems(new String[] {"Tab", "Space", "Comma"}); combo_string.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); combo_string.select(0); Label lblFileName = new Label(grpOutputFormat, SWT.NONE); lblFileName.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblFileName.setText("File Name : "); text_file = new Text(grpOutputFormat, SWT.BORDER); text_file.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { ValuesCheck(); } }); text_file.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { e.doit = e.text.matches("[\\w]*"); } }); text_file.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); Label lblSavePath = new Label(grpOutputFormat, SWT.NONE); lblSavePath.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1)); lblSavePath.setText("Save Path : "); text_dir = new Text(grpOutputFormat, SWT.BORDER | SWT.READ_ONLY); text_dir.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { ValuesCheck(); } }); text_dir.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); Button button_browser = new Button(grpOutputFormat, SWT.NONE); button_browser.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { // DirectoryDialog directoryDialog = new DirectoryDialog(shell, SWT.SAVE); // if(text_dir.getText().trim().length() != 0){ // directoryDialog.setFilterPath(text_dir.getText()); // } // // String sPath = directoryDialog.open(); // if(sPath != null){ // text_dir.setText(sPath); // } } }); button_browser.setText("..."); grpOutputFormat.setTabList(new Control[] {combo_type, combo_string, text_file, button_browser}); group_btn = new Group(shell, SWT.NONE); group_btn.setLayout(null); GridData gd_group_btn = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1); gd_group_btn.heightHint = 63; group_btn.setLayoutData(gd_group_btn); Button btn_cancel = new Button(group_btn, SWT.NONE); btn_cancel.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { shell.close(); } }); btn_cancel.setBounds(299, 18, 75, 25); btn_cancel.setText("&Cancel"); btn_ok = new Button(group_btn, SWT.NONE); btn_ok.setEnabled(false); btn_ok.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { try { int nCount = 0; String sFullPath = text_dir.getText() + System.getProperty("file.separator") + text_file.getText(); int nTotal = 0; switch (combo_type.getSelectionIndex()) { case 0: CollectionView navigationView = (CollectionView) PlatformUI.getWorkbench() .getActiveWorkbenchWindow() .getActivePage() .findView(CollectionView.ID); String sCollection = navigationView.SelectTree(); // Excel WritableWorkbook myWorkbook = Workbook.createWorkbook(new File(sFullPath + ".xls")); WritableSheet mySheet = myWorkbook.createSheet(sCollection.replaceAll("/", "_"), 0); String sImsi = ""; for (int i = 0; i < nColumns; i++) { sImsi = oTotal.get(i); WritableCellFormat ColumnFormat = new WritableCellFormat(); ColumnFormat.setAlignment(Alignment.CENTRE); ColumnFormat.setVerticalAlignment(VerticalAlignment.CENTRE); ColumnFormat.setBackground(Colour.GRAY_25); mySheet.setColumnView(i, (sImsi.trim().length() * 2)); jxl.write.Label oColumnLabel = new jxl.write.Label(i, 0, sImsi, ColumnFormat); mySheet.addCell(oColumnLabel); } for (int i = 0; i < nColumns; i++) { oTotal.remove(0); } nTotal = (oTotal.size() / nColumns); nCount = 0; for (int nRow = 1; nRow <= nTotal; nRow++) { for (int nCol = 0; nCol < nColumns; nCol++) { jxl.write.Label numberLabels = new jxl.write.Label(nCol, nRow, oTotal.get(nCount++)); mySheet.addCell(numberLabels); } } myWorkbook.write(); myWorkbook.close(); break; case 1: // Txt ArrayList<String> oTxt = new ArrayList<String>(); int nString = combo_string.getSelectionIndex(); String sDelimited = ""; switch (nString) { case 0: sDelimited = "\t"; break; case 1: sDelimited = " "; break; case 2: sDelimited = ","; break; default: break; } String sContent = ""; nCount = 0; nTotal = (oTotal.size() / nColumns); for (int i = 0; i < nTotal; i++) { for (int j = 0; j < nColumns; j++) { sContent = sContent + oTotal.get(nCount++) + sDelimited; } oTxt.add(sContent); sContent = ""; } BufferedWriter out = new BufferedWriter(new FileWriter(sFullPath + ".txt")); for (int i = 0; i < oTxt.size(); i++) { out.write(oTxt.get(i)); out.newLine(); } out.close(); break; default: break; } MessageDialog.openInformation( shell, "AMGA_Mangaer", "Success : Files have been saved[" + sFullPath + (combo_type.getSelectionIndex() == 0 ? ".xls" : ".txt") + "]"); shell.close(); } catch (Exception e1) { MessageDialog.openError(shell, "AMGA_Mangaer", e1.getLocalizedMessage()); } } }); btn_ok.setBounds(218, 18, 75, 25); btn_ok.setText("&Ok"); Label lblTotalDataRow = new Label(group_btn, SWT.NONE); lblTotalDataRow.setBounds(10, 23, 202, 15); lblTotalDataRow.setText("Total data row : " + ((oTotal.size() / nColumns) - 1)); group_btn.setTabList(new Control[] {btn_ok, btn_cancel}); shell.setTabList(new Control[] {grpOutputFormat, group_btn}); }
private void createRemoteControl(Composite parent) { Group group = new Group(parent, SWT.NONE); GridLayout layout = new GridLayout(); group.setLayout(layout); GridData gd = new GridData(GridData.FILL_HORIZONTAL); group.setLayoutData(gd); group.setText(Messages.getString("GDBJtagDebuggerTab.remoteGroup_Text")); useRemote = new Button(group, SWT.CHECK); useRemote.setText(Messages.getString("GDBJtagDebuggerTab.useRemote_Text")); useRemote.addSelectionListener( new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { useRemoteChanged(); updateLaunchConfigurationDialog(); } }); Composite comp = new Composite(group, SWT.NONE); layout = new GridLayout(); layout.numColumns = 2; comp.setLayout(layout); Label label = new Label(comp, SWT.NONE); label.setText(Messages.getString("GDBJtagDebuggerTab.jtagDeviceLabel")); jtagDevice = new Combo(comp, SWT.READ_ONLY | SWT.DROP_DOWN); GDBJtagDeviceContribution[] availableDevices = GDBJtagDeviceContributionFactory.getInstance().getGDBJtagDeviceContribution(); for (int i = 0; i < availableDevices.length; i++) { jtagDevice.add(availableDevices[i].getDeviceName()); } jtagDevice.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { updateDeviceIpPort(jtagDevice.getText()); scheduleUpdateJob(); // provides much better performance for Text listeners } }); remoteConnectionParameters = new Composite(group, SWT.NO_TRIM | SWT.NO_FOCUS); remoteConnectParmsLayout = new StackLayout(); remoteConnectionParameters.setLayout(remoteConnectParmsLayout); // // Create entry fields for TCP/IP connections // { remoteTcpipBox = new Composite(remoteConnectionParameters, SWT.NO_TRIM | SWT.NO_FOCUS); layout = new GridLayout(); layout.numColumns = 2; remoteTcpipBox.setLayout(layout); remoteTcpipBox.setBackground(remoteConnectionParameters.getParent().getBackground()); label = new Label(remoteTcpipBox, SWT.NONE); label.setText(Messages.getString("GDBJtagDebuggerTab.ipAddressLabel")); // $NON-NLS-1$ ipAddress = new Text(remoteTcpipBox, SWT.BORDER); gd = new GridData(); gd.widthHint = 125; ipAddress.setLayoutData(gd); label = new Label(remoteTcpipBox, SWT.NONE); label.setText(Messages.getString("GDBJtagDebuggerTab.portNumberLabel")); // $NON-NLS-1$ portNumber = new Text(remoteTcpipBox, SWT.BORDER); gd = new GridData(); gd.widthHint = 125; portNumber.setLayoutData(gd); } // // Create entry fields for other types of connections // { remoteConnectionBox = new Composite(remoteConnectionParameters, SWT.NO_TRIM | SWT.NO_FOCUS); layout = new GridLayout(); layout.numColumns = 2; remoteConnectionBox.setLayout(layout); remoteConnectionBox.setBackground(remoteConnectionParameters.getParent().getBackground()); label = new Label(remoteConnectionBox, SWT.NONE); label.setText(Messages.getString("GDBJtagDebuggerTab.connectionLabel")); // $NON-NLS-1$ connection = new Text(remoteConnectionBox, SWT.BORDER); gd = new GridData(); gd.widthHint = 125; connection.setLayoutData(gd); } // // Add watchers for user data entry // ipAddress.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { scheduleUpdateJob(); // provides much better performance for Text listeners } }); portNumber.addVerifyListener( new VerifyListener() { public void verifyText(VerifyEvent e) { e.doit = Character.isDigit(e.character) || Character.isISOControl(e.character); } }); portNumber.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { scheduleUpdateJob(); // provides much better performance for Text listeners } }); connection.addModifyListener( new ModifyListener() { public void modifyText(ModifyEvent e) { scheduleUpdateJob(); // provides much better performance for Text listeners } }); }
public ConfigMaker(File configFile) { builder = new Builder(configFile); display = new Display(); shell = new Shell(display); shell.setText("Negura Server"); shell.setSize(760, 620); stackLayout = new StackLayout(); shell.setLayout(stackLayout); // Page one positioning. /////////////////////////////////////////////// p1 = new Composite(shell, SWT.NONE); p1.setLayout(new MigLayout("insets 10", "[right][200!][max][100::, fill]")); Label newConfigL = Swt.newLabel(p1, "span, align left, wrap 30px", "New configuration"); Swt.newLabel(p1, null, "Server name:"); serverNameT = Swt.newText(p1, "w max, wrap", "Negura Server Name"); Swt.newLabel(p1, null, "Block size:"); blockSizeC = Swt.newCombo(p1, "w max, wrap 25px", optionsStr, 2); Swt.newLabel(p1, null, "Virtual disk blocks:"); diskBlocksT = Swt.newText(p1, "w max", null); Scale diskBlocksS = Swt.newHScale(p1, "span, w max, wrap", 128, 1024, 64); Swt.newLabel(p1, null, "Virtual disk space:"); Label diskSpaceL = Swt.newLabel(p1, "w max, wrap 25px", null); Swt.newLabel(p1, null, "Minimum user blocks:"); minBlocksT = Swt.newText(p1, "w max", null); Scale minBlocksS = Swt.newHScale(p1, "span, w max, wrap", 128, 1024, 64); Swt.newLabel(p1, null, "Minimum user space:"); Label minSpaceL = Swt.newLabel(p1, "w max, wrap 25px", null); Swt.newLabel(p1, null, "Port:"); portT = Swt.newText(p1, "w max, wrap", "5000"); Swt.newLabel(p1, null, "Check-in time:"); checkInTimeT = Swt.newText(p1, "w max", "300"); Swt.newLabel(p1, "wrap", "seconds"); Swt.newLabel(p1, null, "Thread pool options:"); threadPoolT = Swt.newText(p1, "span, w max, wrap 25px", new ThreadPoolOptions(2, 20, 30000).toString()); Swt.newLabel(p1, null, "Database URL:"); databaseUrlT = Swt.newText(p1, "span, w max", "jdbc:postgresql://127.0.0.1:5432/neguradb"); Swt.newLabel(p1, null, "Database user:"******"w max, wrap", "p"); Swt.newLabel(p1, null, "Database password:"******"w max, wrap push", "password"); Button continueB = Swt.newButton(p1, "skip 3", "Continue"); // Page one options. /////////////////////////////////////////////////// titleFont = Swt.getFontWithDifferentHeight(display, newConfigL.getFont(), 16); Swt.connectDisposal(shell, titleFont); newConfigL.setFont(titleFont); Swt.Mod tripleConnector = new Swt.Mod() { public void modify(Widget to, Widget... from) { Label label = (Label) to; Combo combo = (Combo) from[0]; Text text = (Text) from[1]; int blockSize = optionsInt[combo.getSelectionIndex()]; long numberOfBlocks = Util.parseLongOrZero(text.getText()); label.setText(Util.bytesWithUnit(numberOfBlocks * blockSize, 2)); } }; diskBlocksT.addVerifyListener(Swt.INTEGER_VERIFIER); Swt.connectTo(Swt.TEXT_FROM_SCALE, diskBlocksT, diskBlocksS); Swt.connectTo(Swt.SCALE_FROM_TEXT, diskBlocksS, diskBlocksT); Swt.connectTo(tripleConnector, diskSpaceL, blockSizeC, diskBlocksT); diskBlocksT.setText("768"); minBlocksT.addVerifyListener(Swt.INTEGER_VERIFIER); Swt.connectTo(Swt.TEXT_FROM_SCALE, minBlocksT, minBlocksS); Swt.connectTo(Swt.SCALE_FROM_TEXT, minBlocksS, minBlocksT); Swt.connectTo(tripleConnector, minSpaceL, blockSizeC, minBlocksT); minBlocksT.setText("350"); portT.addVerifyListener(Swt.INTEGER_VERIFIER); checkInTimeT.addVerifyListener(Swt.INTEGER_VERIFIER); continueB.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { step2(); } }); // Page two positioning. /////////////////////////////////////////////// p2 = new Composite(shell, SWT.NONE); p2.setLayout(new MigLayout("insets 10", "[right][grow][100::, fill]")); Label newConfig2L = Swt.newLabel(p2, "span, align left, wrap 30px", "New configuration"); Swt.newLabel(p2, null, "Server key pair:"); final Text key1T = Swt.newText(p2, "w max", null); Button load1B = Swt.newButton(p2, "wrap", "Load"); Swt.newLabel(p2, null, "Admin key pair:"); final Text key2T = Swt.newText(p2, "w max", null); Button load2B = Swt.newButton(p2, "wrap push", "Load"); Button genB = Swt.newButton(p2, "align left", "Key pair generator"); doneB = Swt.newButton(p2, "skip 1", "Done"); // Page two options. /////////////////////////////////////////////////// newConfig2L.setFont(titleFont); key1T.setEditable(false); key2T.setEditable(false); load1B.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { loadKeyPair(key1T, 0); } }); load2B.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { loadKeyPair(key2T, 1); } }); genB.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { openKeyGeneratorWindow(); } }); doneB.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { step3(); } }); stackLayout.topControl = p1; shell.layout(); shell.setDefaultButton(continueB); Swt.centerShell(shell); shell.open(); }
public NewComposite(Composite parent, int style) { super(parent, style); setLayout(new GridLayout(2, false)); GridData gd = new GridData(SWT.NONE, SWT.NONE, false, false); new Label(this, SWT.NONE).setText("Количество октетов:"); spinnerOctet = new Spinner(this, SWT.BORDER); spinnerOctet.setLayoutData(gd); spinnerOctet.setMinimum(2); spinnerOctet.setMaximum(8); new Label(this, SWT.NONE).setText("Количество ключей:"); spinnerCount = new Spinner(this, SWT.BORDER); spinnerCount.setLayoutData(gd); spinnerCount.setMinimum(1); spinnerCount.setMaximum(20000); new Label(this, SWT.NONE).setText("Настраиваемый октет:"); textOctet = new Text(this, SWT.BORDER); textOctet.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); textOctet.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { int len = event.text.length(); if (len > 0) { int allowed = CUSTOM_OCTET_LENGTH - ((Text) event.widget).getText().length(); if (len > allowed) { event.text = event.text.substring(0, allowed); } if (!PATTERN_ALPHANUM.matcher(event.text).matches()) { event.doit = false; } else { event.text = event.text.toUpperCase(); } } } }); new Label(this, SWT.NONE).setText("Комментарий:"); textComment = new Text(this, SWT.BORDER); textComment.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); new Label(this, SWT.NONE).setText("Начало действия ключа:"); dtFrom = new DateTime(this, SWT.BORDER | SWT.DATE); Calendar calendar = Calendar.getInstance(); dtFrom.setDate( calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); new Label(this, SWT.NONE).setText("Окончание действия ключа:"); dtTo = new DateTime(this, SWT.BORDER | SWT.DATE); calendar.add(Calendar.YEAR, 1); dtTo.setDate( calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)); Button button = new Button(this, SWT.PUSH); button.setImage(new Image(getShell().getDisplay(), getClass().getResourceAsStream("/new.gif"))); GridData buttonGridData = new GridData(SWT.NONE, SWT.NONE, false, false, 2, 1); button.setLayoutData(buttonGridData); button.setText("Создать"); button.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { generate(); buttonSave.setEnabled(true); } }); tableSet = new SetTable(this, false); tableSet.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false, 2, 1)); tableKey = new KeyTable(this); GridData gdKeyTable = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1); gdKeyTable.heightHint = 50; tableKey.setLayoutData(gdKeyTable); buttonSave = new Button(this, SWT.PUSH); buttonSave.setLayoutData(buttonGridData); buttonSave.setText("Сохранить"); buttonSave.setImage( new Image(getShell().getDisplay(), getClass().getResourceAsStream("/export.gif"))); buttonSave.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { save(); buttonSave.setEnabled(false); } }); buttonSave.setEnabled(false); }