tmf: Rename tag name label in custom XML parser wizard
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / tracecompass / internal / tmf / ui / parsers / wizards / CustomXmlParserInputWizardPage.java
index 853df7979b4bee3f2cfc743cfe6b512e365b032c..de8aac3c732a638512fde11934f7c1bdd4e49d83 100644 (file)
@@ -46,8 +46,6 @@ import org.eclipse.jface.wizard.WizardPage;
 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;
@@ -77,10 +75,10 @@ import org.eclipse.swt.widgets.Text;
 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;
@@ -329,12 +327,7 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
         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 });
@@ -725,7 +718,8 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                 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();
@@ -742,13 +736,10 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
             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);
 
@@ -836,12 +827,7 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
         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);
@@ -886,6 +872,8 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
         private Label previewLabel;
         private Text previewText;
         private Button logEntryButton;
+        private Button eventTypeButton;
+        private Text eventTypeText;
         private Label fillerLabel;
         private Composite addAttributeComposite;
         private Button addAttributeButton;
@@ -909,12 +897,9 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
             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);
@@ -959,7 +944,7 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
 
                 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
@@ -982,13 +967,18 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                             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());
@@ -1030,16 +1020,48 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                     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) {
@@ -1054,8 +1076,8 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
 
         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());
@@ -1064,8 +1086,8 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                             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) {
@@ -1199,6 +1221,7 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
             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 {
@@ -1315,9 +1338,9 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
             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) {
@@ -1333,12 +1356,16 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                         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());
@@ -1375,13 +1402,17 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                 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);
             }
@@ -1634,6 +1665,16 @@ public class CustomXmlParserInputWizardPage extends WizardPage {
                     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) {
This page took 0.0424 seconds and 5 git commands to generate.