public ECGModel getModel() {
   // If selected source console is disposed, databinding and its Name2TextConsoleConverter returns
   // null.
   // Because only the current source console can be the disposed one, we set them.
   if (ecgModel.getSource() == null) {
     ecgModel.setSource(ecgModelOrig.getSource());
   }
   return ecgModel;
 }
 @Override
 protected void okPressed() {
   if (consoleList.getSelectionIndex() == -1) {
     MessageDialog.openError(
         getShell(),
         Activator.GREP_CONSOLE_NAME,
         Messages.ConsoleConfigDialog_NoTextSourceConsoleSelected);
   } else {
     updateSearchHistory(ecgModel.getSearchString());
     if (ecgModel.isRangeMatching()) {
       updateSearchHistory(ecgModel.getSearchEndString());
     }
     super.okPressed();
   }
 }
 /**
  * @param parentShell
  * @param ecgModel the data mode
  * @param createNew <code>true</code> means create new console mode, else <code>false</code>
  * @param consoles all available consoles
  */
 public ConsoleConfigDialog(
     Shell parentShell, ECGModel ecgModel, boolean createNew, IConsole[] consoles) {
   super(parentShell);
   setShellStyle(getShellStyle() | SWT.RESIZE);
   this.ecgModelOrig = ecgModel;
   this.ecgModel = ecgModel.clone();
   this.createNew = createNew;
   this.consoles = consoles;
 }
 private void updateLblText() {
   if (btnSetEndMarker != null && btnSetEndMarker.getSelection()) {
     return;
   }
   if (ecgModel.isRegularExpression()) {
     lblContainingText.setText(Messages.ConsoleConfigDialog_ContainingRegexp);
   } else {
     lblContainingText.setText(Messages.ConsoleConfigDialog_ContainingText);
   }
   lblContainingText.pack();
 }
  @Override
  protected Control createDialogArea(Composite parent) {
    getShell().setImage(Activator.getImage(Activator.IMAGE_GREP_CONSOLE_24));

    composite = (Composite) super.createDialogArea(parent);
    GridLayout gridLayout = (GridLayout) composite.getLayout();
    gridLayout.numColumns = 3;

    lblHint = new Label(composite, SWT.NONE);
    lblHint.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    new Label(composite, SWT.NONE);

    Label lblInputConsole = new Label(composite, SWT.NONE);
    lblInputConsole.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    lblInputConsole.setText(Messages.ConsoleConfigDialog_SourceConsole);
    new Label(composite, SWT.NONE);

    consoleList = new List(composite, SWT.BORDER);
    GridData gd_list = new GridData(SWT.FILL, SWT.CENTER, false, false, 3, 1);
    gd_list.heightHint = 68;
    gd_list.widthHint = 344;
    consoleList.setLayoutData(gd_list);

    lblContainingText = new Label(composite, SWT.NONE);
    lblContainingText.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
    updateLblText();

    Menu menu = new Menu(composite);
    MenuItem menuItem = new MenuItem(menu, SWT.NONE);
    menuItem.setText(Messages.ConsoleConfigDialog_RemoveEntries);
    menuItem.addSelectionListener(
        new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
            ECGContext.getSortedSearchStringHistory().clear();
            containingText.setItems(new String[0]);
            containingEndText.setItems(new String[0]);
          }
        });
    lblContainingText.setMenu(menu);
    lblContainingEndText = new Label(composite, SWT.NONE);
    lblContainingEndText.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
    lblContainingEndText.setMenu(menu);
    new Label(composite, SWT.NONE);

    containingText = new CCombo(composite, SWT.BORDER);
    GridData gd_text = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
    gd_text.widthHint = 393;
    containingText.setLayoutData(gd_text);
    if (!ECGContext.getSortedSearchStringHistory().isEmpty()) {
      for (SearchStringElem elem : ECGContext.getSortedSearchStringHistory()) {
        containingText.add(elem.getSearchString());
      }
    }
    containingText.setTextLimit(MAX_SEARCH_STRING_LENGTH);

    containingEndText = new CCombo(composite, SWT.BORDER);
    gd_endText = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
    gd_endText.widthHint = 0;
    containingEndText.setLayoutData(gd_endText);
    if (!ECGContext.getSortedSearchStringHistory().isEmpty()) {
      for (SearchStringElem elem : ECGContext.getSortedSearchStringHistory()) {
        containingEndText.add(elem.getSearchString());
      }
    }
    containingEndText.setTextLimit(MAX_SEARCH_STRING_LENGTH);
    containingEndText.setVisible(false);

    btnSetEndMarker = new Button(composite, SWT.CHECK);
    btnSetEndMarker.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
    btnSetEndMarker.setText(Messages.ConsoleConfigDialog_RangeMatching);

    btnCaseSensitive = new Button(composite, SWT.CHECK);
    btnCaseSensitive.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    btnCaseSensitive.setText(Messages.ConsoleConfigDialog_CaseSensitive);

    btnWholeWord = new Button(composite, SWT.CHECK);
    btnWholeWord.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    btnWholeWord.setText(Messages.ConsoleConfigDialog_WholeWord);

    btnRegualarExpression = new Button(composite, SWT.CHECK);
    GridData gd_btnRegualarExpression = new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1);
    gd_btnRegualarExpression.widthHint = 235;
    btnRegualarExpression.setLayoutData(gd_btnRegualarExpression);
    btnRegualarExpression.setText(Messages.ConsoleConfigDialog_RegularExpression);

    btnNotMatching = new Button(composite, SWT.CHECK);
    btnNotMatching.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    btnNotMatching.setText(Messages.ConsoleConfigDialog_NotMatching);

    new Label(composite, SWT.NONE);

    if (createNew) {
      loadConsoles();
      // consoleList.setEnabled(true);
      getShell()
          .setText(
              Activator.GREP_CONSOLE_NAME
                  + ": "
                  + Messages.ConsoleConfigDialog_NewConsole); // $NON-NLS-1$
      lblHint.setText(Messages.ConsoleConfigDialog_CreateNewGrepConsole);
      consoleList.setFocus();
    } else {
      if (ecgModel.isSourceDisposed()) {
        // add current because it is no more in the list caused of disposal.
        consoleList.add(
            Messages.GrepConsole_SourceConsoleDisposed + ecgModel.getSource().getName());
      }
      loadConsoles();
      getShell()
          .setText(
              Activator.GREP_CONSOLE_NAME + ": " + ecgModel.getSource().getName()); // $NON-NLS-1$
      lblHint.setText(Messages.ConsoleConfigDialog_EditCurrentConsole);
      containingText.setFocus();
    }

    initDataBindings().updateModels();

    updateRangeMatchingArrangement();

    return composite;
  }