@Test public void testRenderTextLimitResetWithNegative() throws IOException { Fixture.markInitialized(display); Fixture.markInitialized(combo); combo.setTextLimit(10); Fixture.preserveWidgets(); combo.setTextLimit(-5); lca.renderChanges(combo); Message message = Fixture.getProtocolMessage(); assertEquals(JSONObject.NULL, message.findSetProperty(combo, "textLimit")); }
@Test public void testRenderTextLimit() throws IOException { combo.setTextLimit(10); lca.renderChanges(combo); Message message = Fixture.getProtocolMessage(); assertEquals(new Integer(10), message.findSetProperty(combo, "textLimit")); }
/* * (non-Javadoc) * @see it.baeyens.avreclipse.ui.editors.targets.AbstractTargetConfigurationEditorPart#createSectionContent * (org.eclipse.swt.widgets.Composite, org.eclipse.ui.forms.widgets.FormToolkit) */ @Override protected void createSectionContent(Composite parent, FormToolkit toolkit) { GridLayout layout = new GridLayout(2, false); layout.horizontalSpacing = 12; parent.setLayout(layout); // // The MCU Combo // toolkit.createLabel(parent, "MCU type:"); fMCUcombo = new Combo(parent, SWT.READ_ONLY); toolkit.adapt(fMCUcombo, true, true); fMCUcombo.setLayoutData(new GridData(SWT.FILL, SWT.NONE, false, false)); fMCUcombo.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { String mcuid = AVRMCUidConverter.name2id(fMCUcombo.getText()); getTargetConfiguration().setMCU(mcuid); refreshMessages(); getManagedForm().dirtyStateChanged(); } }); // // The FCPU Combo // toolkit.createLabel(parent, "MCU clock frequency:"); fFCPUcombo = new Combo(parent, SWT.NONE); toolkit.adapt(fFCPUcombo, true, true); fFCPUcombo.setLayoutData(new GridData(SWT.FILL, SWT.NONE, false, false)); fFCPUcombo.setTextLimit(9); // max. 999 MHz fFCPUcombo.setToolTipText("Target Hardware Clock Frequency in Hz"); fFCPUcombo.setVisibleItemCount(FCPU_VALUES.length); fFCPUcombo.setItems(FCPU_VALUES); fFCPUcombo.addModifyListener( new ModifyListener() { @Override public void modifyText(ModifyEvent e) { getTargetConfiguration().setFCPU(Integer.parseInt(fFCPUcombo.getText())); getManagedForm().dirtyStateChanged(); } }); // The verify listener to restrict the input to integers fFCPUcombo.addVerifyListener( new VerifyListener() { @Override public void verifyText(VerifyEvent event) { String text = event.text; if (!text.matches("[0-9]*")) { event.doit = false; } } }); }
@Test public void testRenderTextLimitUnchanged() throws IOException { Fixture.markInitialized(display); Fixture.markInitialized(combo); combo.setTextLimit(10); Fixture.preserveWidgets(); lca.renderChanges(combo); Message message = Fixture.getProtocolMessage(); assertNull(message.findSetOperation(combo, "textLimit")); }
@Test public void testEditablePreserveValues() { Fixture.markInitialized(display); Fixture.preserveWidgets(); WidgetAdapter adapter = WidgetUtil.getAdapter(combo); assertEquals(Boolean.TRUE, adapter.getPreserved(ComboLCA.PROP_EDITABLE)); Fixture.clearPreserved(); // textLimit combo.setTextLimit(10); Fixture.preserveWidgets(); Integer textLimit = (Integer) adapter.getPreserved(ComboLCA.PROP_TEXT_LIMIT); assertEquals(new Integer(10), textLimit); }
protected void addComboBox( Composite composite, String label, String key, int textLimit, int indentation) { Label labelControl = new Label(composite, SWT.NONE); labelControl.setText(label); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING); gd.horizontalIndent = indentation; labelControl.setLayoutData(gd); Combo comboControl = new Combo( composite, SWT.BORDER | SWT.SINGLE | SWT.READ_ONLY); // TODO: When will the combo be disposed? gd = new GridData(GridData.HORIZONTAL_ALIGN_END); if (textLimit != NO_TEXT_LIMIT) { gd.widthHint = convertWidthInCharsToPixels(textLimit + 1); comboControl.setTextLimit(textLimit); } comboControl.setLayoutData(gd); fComboBoxes.put(comboControl, key); comboControl.addModifyListener(fComboBoxListener); // TODO: When will the listener be removed? }
private void createRow(String markerName, Composite comp) { GridData gd; Label label = new Label(comp, 0); label.setText(USED_MARKERS.get(markerName)); Combo imp = new Combo(comp, SWT.DROP_DOWN); imp.setItems(new String[] {"low", "medium", "high"}); imp.setTextLimit(6); gd = new GridData(); gd.widthHint = 80; imp.setLayoutData(gd); Text bl = new Text(comp, SWT.SINGLE); bl.setTextLimit(7); gd = new GridData(); gd.widthHint = 60; bl.setLayoutData(gd); markers.add(markerName); impacts.add(imp); baselines.add(bl); // TODO: validators to check if the field contains sensible LoC info // TODO: tooltips }
void addControls(final Composite parent) { Label desc = new Label(parent, SWT.LEFT | SWT.WRAP); desc.setText("The Ceylon builder compiles Ceylon source contained in the project."); enableBuilderButton = new Button(parent, SWT.PUSH); enableBuilderButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_CENTER)); enableBuilderButton.setText("Enable Ceylon Builder"); enableBuilderButton.setEnabled(!builderEnabled && getSelectedProject().isOpen()); enableBuilderButton.setImage( CeylonPlugin.getInstance().getImageRegistry().get(CeylonResources.ELE32)); // enableBuilder.setSize(40, 40); Label sep = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL); GridData sgd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); sep.setLayoutData(sgd); Composite composite = new Composite(parent, SWT.NONE); GridData gdb = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gdb.grabExcessHorizontalSpace = true; composite.setLayoutData(gdb); GridLayout layoutb = new GridLayout(); layoutb.numColumns = 1; layoutb.marginBottom = 1; composite.setLayout(layoutb); addCharacterEncodingLabel(composite); offlineButton = new Button(composite, SWT.CHECK); offlineButton.setText("Work offline (disable connection to remote module repositories)"); offlineButton.setEnabled(builderEnabled); offlineButton.setSelection(offlineOption != null && offlineOption); offlineButton.addListener( SWT.Selection, new Listener() { public void handleEvent(Event e) { if (offlineOption == null) { offlineOption = true; } else { offlineOption = !offlineOption; } } }); final Group platformGroup = new Group(parent, SWT.NONE); platformGroup.setText("Target virtual machine"); GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.grabExcessHorizontalSpace = true; platformGroup.setLayoutData(gd); GridLayout layout = new GridLayout(); layout.numColumns = 1; layout.marginBottom = 1; platformGroup.setLayout(layout); compileToJava = new Button(platformGroup, SWT.CHECK); compileToJava.setText("Compile project for JVM"); compileToJava.setSelection(backendJava); compileToJava.setEnabled(builderEnabled); compileToJs = new Button(platformGroup, SWT.CHECK); compileToJs.setText("Compile project to JavaScript"); compileToJs.setSelection(backendJs); compileToJs.setEnabled(builderEnabled); Group troubleGroup = new Group(parent, SWT.NONE); troubleGroup.setText("Troubleshooting"); troubleGroup.setLayout(new GridLayout(1, false)); GridData gd3 = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd3.grabExcessHorizontalSpace = true; troubleGroup.setLayoutData(gd3); astAwareIncrementalBuidsButton = new Button(troubleGroup, SWT.CHECK); astAwareIncrementalBuidsButton.setText("Disable structure-aware incremental compilation"); astAwareIncrementalBuidsButton.setSelection(!astAwareIncrementalBuids); astAwareIncrementalBuidsButton.setEnabled(builderEnabled); final Button logButton = new Button(troubleGroup, SWT.CHECK); logButton.setText("Log compiler activity to Eclipse console"); boolean loggingEnabled = verbose != null && !verbose.isEmpty(); logButton.setSelection(loggingEnabled); logButton.setEnabled(builderEnabled); final Composite verbosityOptions = new Composite(troubleGroup, SWT.NONE); verbosityOptions.setLayout(new GridLayout(2, false)); final GridData gd4 = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd4.grabExcessHorizontalSpace = true; verbosityOptions.setLayoutData(gd4); gd4.exclude = !loggingEnabled; verbosityOptions.setVisible(loggingEnabled); verbosityOptions.setEnabled(loggingEnabled); final Label verbosityLabel = new Label(verbosityOptions, SWT.NONE); verbosityLabel.setText("Verbosity level"); verboseText = new Combo(verbosityOptions, SWT.DROP_DOWN); verboseText.add("code"); verboseText.add("ast"); verboseText.add("loader"); verboseText.add("cmr"); verboseText.add("all"); GridData vgd = new GridData(); vgd.grabExcessHorizontalSpace = true; vgd.minimumWidth = 75; verboseText.setLayoutData(vgd); verboseText.setTextLimit(20); if (loggingEnabled) { verboseText.setText(verbose); } verboseText.addModifyListener( new ModifyListener() { @Override public void modifyText(ModifyEvent e) { String str = verboseText.getText(); if (str == null || str.isEmpty()) { verbose = null; } else { verbose = str.trim(); } } }); logButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { boolean selected = logButton.getSelection(); verbose = selected ? verboseText.getText() : null; verboseText.setEnabled(selected); ((GridData) verbosityOptions.getLayoutData()).exclude = !selected; verbosityOptions.setVisible(selected); verbosityOptions.setEnabled(selected); verboseText.setVisible(selected); parent.layout(); } }); enableBuilderButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { new CeylonNature().addToProject(getSelectedProject()); enableBuilderButton.setEnabled(false); astAwareIncrementalBuidsButton.setEnabled(true); compileToJs.setEnabled(true); compileToJava.setEnabled(true); offlineButton.setEnabled(true); logButton.setEnabled(true); builderEnabled = true; } }); astAwareIncrementalBuidsButton.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { astAwareIncrementalBuids = !astAwareIncrementalBuids; } }); compileToJava.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { backendJava = !backendJava; } }); compileToJs.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { backendJs = !backendJs; } }); Link buildPathsPageLink = new Link(parent, 0); buildPathsPageLink.setText("See '<a>Build Paths</a>' to configure project build paths."); buildPathsPageLink.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IWorkbenchPreferenceContainer container = (IWorkbenchPreferenceContainer) getContainer(); container.openPage(CeylonBuildPathsPropertiesPage.ID, null); } }); Link openRepoPageLink = new Link(parent, 0); openRepoPageLink.setText( "See '<a>Module Repositories</a>' to configure project module repositores."); openRepoPageLink.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IWorkbenchPreferenceContainer container = (IWorkbenchPreferenceContainer) getContainer(); container.openPage(CeylonRepoPropertiesPage.ID, null); } }); Link warningsPageLink = new Link(parent, 0); warningsPageLink.setText("See '<a>Warnings</a>' to enable or disable warnings."); warningsPageLink.addSelectionListener( new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { IWorkbenchPreferenceContainer container = (IWorkbenchPreferenceContainer) getContainer(); container.openPage(CeylonWarningsPropertiesPage.ID, null); } }); }