protected void createLinksPanel(Composite composite) {
    final DriverDescriptor driver = getWizard().getDriver();

    // UIUtils.createPlaceholder(composite, 1).setLayoutData(new GridData(GridData.FILL_BOTH));

    Composite linksGroup = UIUtils.createPlaceholder(composite, 2);
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.verticalIndent = 10;
    linksGroup.setLayoutData(gd);

    // Vendor site
    if (!CommonUtils.isEmpty(driver.getWebURL())) {
      Link link =
          UIUtils.createLink(
              linksGroup,
              "<a>Vendor's website</a>",
              new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                  RuntimeUtils.openWebBrowser(driver.getWebURL());
                }
              });
      link.setToolTipText(driver.getWebURL());
      link.setLayoutData(
          new GridData(
              GridData.FILL_HORIZONTAL
                  | GridData.VERTICAL_ALIGN_BEGINNING
                  | GridData.HORIZONTAL_ALIGN_BEGINNING));
    } else {
      UIUtils.createPlaceholder(linksGroup, 1)
          .setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    }

    Link link =
        UIUtils.createLink(
            linksGroup,
            "<a>Download configuration</a>",
            new SelectionAdapter() {
              @Override
              public void widgetSelected(SelectionEvent e) {
                UIUtils.showPreferencesFor(null, null, PrefPageDrivers.PAGE_ID);
              }
            });
    link.setLayoutData(
        new GridData(
            GridData.FILL_HORIZONTAL
                | GridData.VERTICAL_ALIGN_BEGINNING
                | GridData.HORIZONTAL_ALIGN_END));
  }
Beispiel #2
0
  @NotNull
  public static Text createOutputFolderChooser(
      final Composite parent, @Nullable String label, @Nullable ModifyListener changeListener) {
    UIUtils.createControlLabel(
        parent, label != null ? label : CoreMessages.data_transfer_wizard_output_label_directory);
    Composite chooserPlaceholder = UIUtils.createPlaceholder(parent, 2);
    chooserPlaceholder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    final Text directoryText = new Text(chooserPlaceholder, SWT.BORDER);
    directoryText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    if (changeListener != null) {
      directoryText.addModifyListener(changeListener);
    }

    final Runnable folderChooser =
        new Runnable() {
          @Override
          public void run() {
            DirectoryDialog dialog = new DirectoryDialog(parent.getShell(), SWT.NONE);
            dialog.setMessage(CoreMessages.data_transfer_wizard_output_dialog_directory_message);
            dialog.setText(CoreMessages.data_transfer_wizard_output_dialog_directory_text);
            String directory = directoryText.getText();
            if (!CommonUtils.isEmpty(directory)) {
              dialog.setFilterPath(directory);
            }
            directory = dialog.open();
            if (directory != null) {
              directoryText.setText(directory);
            }
          }
        };
    directoryText.addMouseListener(
        new MouseAdapter() {
          @Override
          public void mouseUp(MouseEvent e) {
            folderChooser.run();
          }
        });

    Button openFolder = new Button(chooserPlaceholder, SWT.PUSH | SWT.FLAT);
    openFolder.setImage(DBeaverIcons.getImage(DBIcon.TREE_FOLDER));
    openFolder.setLayoutData(
        new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.HORIZONTAL_ALIGN_CENTER));
    openFolder.addSelectionListener(
        new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
            folderChooser.run();
          }
        });
    return directoryText;
  }
  @Override
  protected Control createDialogArea(Composite parent) {
    IValueController valueController = getValueController();
    Object value = valueController.getValue();

    Composite dialogGroup = (Composite) super.createDialogArea(parent);
    Composite panel = UIUtils.createPlaceholder(dialogGroup, 3);
    panel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    int style = SWT.BORDER;
    if (valueController.isReadOnly()) {
      style |= SWT.READ_ONLY;
    }

    UIUtils.createControlLabel(panel, "Time")
        .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
    DBDDataFormatter formatter =
        helper.getFormatter(valueController, valueController.getValueType());
    timeEditor = new CustomTimeEditor(panel, style, formatter);

    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalAlignment = GridData.CENTER;
    timeEditor.getControl().setLayoutData(gd);

    primeEditorValue(value);

    Button button = UIUtils.createPushButton(panel, "Set Current", null);
    button.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));

    button.setEnabled(!valueController.isReadOnly());
    button.addSelectionListener(
        new SelectionAdapter() {
          @Override
          public void widgetSelected(SelectionEvent e) {
            primeEditorValue(new Date());
          }
        });

    return dialogGroup;
  }
  @Override
  protected Control createContents(final Composite parent) {
    Composite composite = UIUtils.createPlaceholder(parent, 1, 5);

    {
      typeTable = new Table(composite, SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION);
      typeTable.setLayoutData(new GridData(GridData.FILL_BOTH));
      UIUtils.createTableColumn(typeTable, SWT.LEFT, "Name");
      UIUtils.createTableColumn(typeTable, SWT.LEFT, "Description");
      typeTable.setHeaderVisible(true);
      typeTable.setLayoutData(new GridData(GridData.FILL_BOTH));
      typeTable.addSelectionListener(
          new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
              showSelectedType(getSelectedType());
            }
          });

      Composite tableGroup = UIUtils.createPlaceholder(composite, 2, 5);
      tableGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

      Button newButton = new Button(tableGroup, SWT.PUSH);
      newButton.setText("New");
      newButton.addSelectionListener(
          new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
              String name;
              for (int i = 1; ; i++) {
                name = "Type" + i;
                boolean hasName = false;
                for (DBPConnectionType type : changedInfo.keySet()) {
                  if (type.getName().equals(name)) {
                    hasName = true;
                    break;
                  }
                }
                if (!hasName) {
                  break;
                }
              }
              DBPConnectionType newType =
                  new DBPConnectionType(
                      SecurityUtils.generateUniqueId(),
                      name,
                      "255,255,255",
                      "New type",
                      true,
                      false);
              addTypeToTable(newType, newType);
              typeTable.select(typeTable.getItemCount() - 1);
              typeTable.showSelection();
              showSelectedType(newType);
            }
          });

      deleteButton = new Button(tableGroup, SWT.PUSH);
      deleteButton.setText("Delete");
      deleteButton.addSelectionListener(
          new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
              DBPConnectionType connectionType = getSelectedType();
              if (!UIUtils.confirmAction(
                  deleteButton.getShell(),
                  "Delete connection type",
                  "Are you sure you want to delete connection type '"
                      + connectionType.getName()
                      + "'?\n"
                      + "All connections of this type will be reset to default type ("
                      + DBPConnectionType.DEFAULT_TYPE.getName()
                      + ")")) {
                return;
              }
              changedInfo.remove(connectionType);
              int index = typeTable.getSelectionIndex();
              typeTable.remove(index);
              if (index > 0) index--;
              typeTable.select(index);
              showSelectedType(getSelectedType());
            }
          });
    }

    {
      Group groupSettings =
          UIUtils.createControlGroup(
              composite, "Settings", 2, GridData.VERTICAL_ALIGN_BEGINNING, 300);
      groupSettings.setLayoutData(new GridData(GridData.FILL_BOTH));

      typeName = UIUtils.createLabelText(groupSettings, "Name", null);
      typeName.addModifyListener(
          new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
              getSelectedType().setName(typeName.getText());
              updateTableInfo();
            }
          });
      typeDescription = UIUtils.createLabelText(groupSettings, "Description", null);
      typeDescription.addModifyListener(
          new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
              getSelectedType().setDescription(typeDescription.getText());
              updateTableInfo();
            }
          });

      {
        UIUtils.createControlLabel(groupSettings, "Color");
        Composite colorGroup = UIUtils.createPlaceholder(groupSettings, 2, 5);
        colorGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

        colorPicker = new CImageCombo(colorGroup, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
        colorPicker.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
        colorPicker.addSelectionListener(
            new SelectionAdapter() {
              @Override
              public void widgetSelected(SelectionEvent e) {
                getSelectedType()
                    .setColor(
                        StringConverter.asString(
                            colorPicker
                                .getItem(colorPicker.getSelectionIndex())
                                .getBackground()
                                .getRGB()));
                updateTableInfo();
              }
            });
        Button pickerButton = new Button(colorGroup, SWT.PUSH);
        pickerButton.setText("...");
        pickerButton.addSelectionListener(
            new SelectionAdapter() {
              @Override
              public void widgetSelected(SelectionEvent e) {
                DBPConnectionType connectionType = getSelectedType();
                ColorDialog colorDialog = new ColorDialog(parent.getShell());
                colorDialog.setRGB(StringConverter.asRGB(connectionType.getColor()));
                RGB rgb = colorDialog.open();
                if (rgb != null) {
                  Color color = null;
                  int count = colorPicker.getItemCount();
                  for (int i = 0; i < count; i++) {
                    TableItem item = colorPicker.getItem(i);
                    if (item.getBackground() != null && item.getBackground().getRGB().equals(rgb)) {
                      color = item.getBackground();
                      break;
                    }
                  }
                  if (color == null) {
                    color = new Color(colorPicker.getDisplay(), rgb);
                    colorPicker.add(null, COLOR_TEXT, color, color);
                  }
                  colorPicker.select(color);
                  getSelectedType().setColor(StringConverter.asString(color.getRGB()));
                  updateTableInfo();
                }
              }
            });
      }

      GridData gd = new GridData(GridData.FILL_HORIZONTAL);
      gd.horizontalSpan = 2;

      autocommitCheck = UIUtils.createCheckbox(groupSettings, "Auto-commit by default", false);
      autocommitCheck.addSelectionListener(
          new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
              getSelectedType().setAutocommit(autocommitCheck.getSelection());
            }
          });
      autocommitCheck.setLayoutData(gd);
      confirmCheck = UIUtils.createCheckbox(groupSettings, "Confirm SQL execution", false);
      confirmCheck.addSelectionListener(
          new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
              getSelectedType().setConfirmExecute(confirmCheck.getSelection());
            }
          });
      confirmCheck.setLayoutData(gd);
    }

    performDefaults();

    return composite;
  }