import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
-import org.eclipse.swt.browser.TitleEvent;
-import org.eclipse.swt.browser.TitleListener;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.tracecompass.internal.tmf.ui.Activator;
import org.eclipse.tracecompass.internal.tmf.ui.Messages;
import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomTraceDefinition;
+import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlInputAttribute;
import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlInputElement;
import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTrace;
import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlTraceDefinition;
-import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomXmlInputAttribute;
import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType;
import org.eclipse.tracecompass.tmf.core.project.model.TraceTypeHelper;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestampFormat;
gd.widthHint = 800;
inputText.setLayoutData(gd);
inputText.setText(getSelectionText());
- inputText.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- parseXmlInput(inputText.getText());
- }
- });
+ inputText.addModifyListener(e -> parseXmlInput(inputText.getText()));
inputText.addModifyListener(updateListener);
vSash.setWeights(new int[] { hSash.computeSize(SWT.DEFAULT, SWT.DEFAULT).y, sashBottom.computeSize(SWT.DEFAULT, SWT.DEFAULT).y });
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
- sb.append(line + "\n"); //$NON-NLS-1$
+ sb.append(line);
+ sb.append('\n');
}
parseXmlInput(sb.toString());
return sb.toString();
DocumentBuilder db = dbf.newDocumentBuilder();
// The following allows xml parsing without access to the dtd
- EntityResolver resolver = new EntityResolver() {
- @Override
- public InputSource resolveEntity(String publicId, String systemId) {
- String empty = ""; //$NON-NLS-1$
- ByteArrayInputStream bais = new ByteArrayInputStream(empty.getBytes());
- return new InputSource(bais);
- }
+ EntityResolver resolver = (publicId, systemId) -> {
+ String empty = ""; //$NON-NLS-1$
+ ByteArrayInputStream bais = new ByteArrayInputStream(empty.getBytes());
+ return new InputSource(bais);
};
db.setEntityResolver(resolver);
final Shell helpShell = new Shell(getShell(), SWT.SHELL_TRIM);
helpShell.setLayout(new FillLayout());
helpBrowser = new Browser(helpShell, SWT.NONE);
- helpBrowser.addTitleListener(new TitleListener() {
- @Override
- public void changed(TitleEvent event) {
- helpShell.setText(event.title);
- }
- });
+ helpBrowser.addTitleListener(event -> helpShell.setText(event.title));
Rectangle r = container.getBounds();
Point p = container.toDisplay(r.x, r.y);
Rectangle trim = helpShell.computeTrim(p.x + (r.width - 750) / 2, p.y + (r.height - 400) / 2, 750, 400);
private Label previewLabel;
private Text previewText;
private Button logEntryButton;
+ private Button eventTypeButton;
+ private Text eventTypeText;
private Label fillerLabel;
private Composite addAttributeComposite;
private Button addAttributeButton;
GridData gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
gd.widthHint = 0;
elementNameText.setLayoutData(gd);
- elementNameText.addModifyListener(new ModifyListener() {
- @Override
- public void modifyText(ModifyEvent e) {
- ElementNode.this.inputElement.setElementName(elementNameText.getText().trim());
- group.setText(getName(ElementNode.this.inputElement));
- }
+ elementNameText.addModifyListener(e -> {
+ ElementNode.this.inputElement.setElementName(elementNameText.getText().trim());
+ group.setText(getName(ElementNode.this.inputElement));
});
elementNameText.setText(inputElement.getElementName());
elementNameText.addModifyListener(updateListener);
tagCombo = new Combo(tagComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
tagCombo.setItems(new String[] { CustomXmlTraceDefinition.TAG_IGNORE, CustomTraceDefinition.TAG_TIMESTAMP,
- CustomTraceDefinition.TAG_MESSAGE, CustomTraceDefinition.TAG_OTHER });
+ CustomTraceDefinition.TAG_EVENT_TYPE, CustomTraceDefinition.TAG_MESSAGE, CustomTraceDefinition.TAG_OTHER });
tagCombo.setVisibleItemCount(tagCombo.getItemCount());
tagCombo.addSelectionListener(new SelectionListener() {
@Override
tagText.addModifyListener(updateListener);
actionCombo.setVisible(true);
break;
- case 2: // Message
+ case 2: // Event type
tagLabel.setVisible(false);
tagText.setVisible(false);
actionCombo.setVisible(true);
break;
- case 3: // Other
- tagLabel.setText(Messages.CustomXmlParserInputWizardPage_tagName);
+ case 3: // Message
+ tagLabel.setVisible(false);
+ tagText.setVisible(false);
+ actionCombo.setVisible(true);
+ break;
+ case 4: // Other
+ tagLabel.setText(Messages.CustomXmlParserInputWizardPage_name);
tagLabel.setVisible(true);
if (tagText.getText().trim().length() == 0) {
tagText.setText(elementNameText.getText().trim());
tagLabel.setText(Messages.CustomXmlParserInputWizardPage_format);
tagText.setText(inputElement.getInputFormat());
tagText.addModifyListener(updateListener);
- } else if (inputElement.getInputName().equals(CustomTraceDefinition.TAG_MESSAGE)) {
+ } else if (inputElement.getInputName().equals(CustomTraceDefinition.TAG_EVENT_TYPE)) {
tagCombo.select(2);
tagLabel.setVisible(false);
tagText.setVisible(false);
- } else {
+ } else if (inputElement.getInputName().equals(CustomTraceDefinition.TAG_MESSAGE)) {
tagCombo.select(3);
- tagLabel.setText(Messages.CustomXmlParserInputWizardPage_tagName);
+ tagLabel.setVisible(false);
+ tagText.setVisible(false);
+ } else {
+ tagCombo.select(4);
+ tagLabel.setText(Messages.CustomXmlParserInputWizardPage_name);
tagText.setText(inputElement.getInputName());
tagText.addModifyListener(updateListener);
}
+
+ eventTypeButton = new Button(group, SWT.CHECK);
+ eventTypeButton.setText(Messages.CustomTxtParserInputWizardPage_eventType);
+ eventTypeButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false));
+ eventTypeButton.addSelectionListener(new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ if (eventTypeButton.getSelection()) {
+ eventTypeText.setEnabled(true);
+ } else {
+ eventTypeText.setEnabled(false);
+ }
+ }
+ });
+ eventTypeButton.addSelectionListener(updateListener);
+
+ eventTypeText = new Text(group, SWT.BORDER | SWT.SINGLE);
+ gd = new GridData(SWT.FILL, SWT.CENTER, true, false);
+ gd.widthHint = 0;
+ eventTypeText.setLayoutData(gd);
+ if (inputElement.getEventType() != null) {
+ eventTypeText.setText(inputElement.getEventType());
+ eventTypeButton.setSelection(true);
+ } else {
+ eventTypeText.setEnabled(false);
+ eventTypeButton.setSelection(false);
+ }
+ eventTypeText.addModifyListener(updateListener);
}
if (inputElement.getAttributes() != null) {
private void updatePreview() {
Element element = getPreviewElement(inputElement);
- if (inputElement.getParentElement() != null) { // no preview text for
- // document element
+ // no preview text for document element
+ if (inputElement.getParentElement() != null) {
previewText.setText(Messages.CustomXmlParserInputWizardPage_noMatchingElement);
if (element != null) {
previewText.setText(CustomXmlTrace.parseElement(element, new StringBuffer()).toString());
logEntryFound = true;
logEntriesCount++;
} else {
- logEntryButton.setSelection(false); // remove nested
- // log entry
+ // remove nested log entry
+ logEntryButton.setSelection(false);
}
}
if (tagCombo.getText().equals(CustomTraceDefinition.TAG_TIMESTAMP) && logEntriesCount <= 1) {
inputElement.setElementName(elementNameText.getText().trim());
if (inputElement.getParentElement() != null) {
inputElement.setLogEntry(logEntryButton.getSelection());
+ inputElement.setEventType(eventTypeButton.getSelection() ? eventTypeText.getText().trim() : null);
if (tagCombo.getText().equals(CustomTraceDefinition.TAG_OTHER)) {
inputElement.setInputName(tagText.getText().trim());
} else {
tagComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
tagCombo = new Combo(tagComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
- tagCombo.setItems(new String[] { CustomTraceDefinition.TAG_TIMESTAMP, CustomTraceDefinition.TAG_MESSAGE,
- CustomTraceDefinition.TAG_OTHER });
- tagCombo.select(2); // Other
+ tagCombo.setItems(new String[] { CustomTraceDefinition.TAG_TIMESTAMP, CustomTraceDefinition.TAG_EVENT_TYPE,
+ CustomTraceDefinition.TAG_MESSAGE, CustomTraceDefinition.TAG_OTHER });
+ tagCombo.select(3); // Other
tagCombo.addSelectionListener(new SelectionListener() {
@Override
public void widgetDefaultSelected(SelectionEvent e) {
tagText.setVisible(true);
tagText.addModifyListener(updateListener);
break;
- case 1: // Message
+ case 1: // Event type
+ tagLabel.setVisible(false);
+ tagText.setVisible(false);
+ break;
+ case 2: // Message
tagLabel.setVisible(false);
tagText.setVisible(false);
break;
- case 2: // Other
- tagLabel.setText(Messages.CustomXmlParserInputWizardPage_tagName);
+ case 3: // Other
+ tagLabel.setText(Messages.CustomXmlParserInputWizardPage_name);
tagLabel.setVisible(true);
if (tagText.getText().trim().length() == 0) {
tagText.setText(attributeNameText.getText().trim());
tagLabel.setText(Messages.CustomXmlParserInputWizardPage_format);
tagText.setText(inputAttribute.getInputFormat());
tagText.addModifyListener(updateListener);
- } else if (inputAttribute.getInputName().equals(CustomTraceDefinition.TAG_MESSAGE)) {
+ } else if (inputAttribute.getInputName().equals(CustomTraceDefinition.TAG_EVENT_TYPE)) {
tagCombo.select(1);
tagLabel.setVisible(false);
tagText.setVisible(false);
- } else {
+ } else if (inputAttribute.getInputName().equals(CustomTraceDefinition.TAG_MESSAGE)) {
tagCombo.select(2);
- tagLabel.setText(Messages.CustomXmlParserInputWizardPage_tagName);
+ tagLabel.setVisible(false);
+ tagText.setVisible(false);
+ } else {
+ tagCombo.select(3);
+ tagLabel.setText(Messages.CustomXmlParserInputWizardPage_name);
tagText.setText(inputAttribute.getInputName());
tagText.addModifyListener(updateListener);
}
elementNode.tagText.setBackground(COLOR_TEXT_BACKGROUND);
}
}
+ if (inputElement.getEventType() != null && inputElement.getEventType().trim().isEmpty()) {
+ errors.add(NLS.bind(Messages.CustomXmlParserInputWizardPage_emptyEventTypeError, getName(inputElement)));
+ if (elementNode != null) {
+ elementNode.eventTypeText.setBackground(COLOR_LIGHT_RED);
+ }
+ } else {
+ if (elementNode != null) {
+ elementNode.eventTypeText.setBackground(COLOR_TEXT_BACKGROUND);
+ }
+ }
}
if (inputElement.getAttributes() != null) {
if (elementNode != null) {