@Test
  public void testUIAttribute() {
    final Label widget = createWidget(Label.class, SWT.NONE);

    assertNoLog(
        new Runnable() {
          @Override
          public void run() {
            attribute = IManager.Factory.getManager().createUIAttribute(widget, "");
          }
        });

    assertNotNull(attribute);

    assertEquals("", attribute.getAttribute());
    assertEquals(widget, attribute.getWidget());

    testObservableValue(widget, "", attribute.getBackgroundValue(), Color.class, "background");
    testObservableValue(widget, "", attribute.getForegroundValue(), Color.class, "foreground");
    testObservableValue(widget, "", attribute.getFontValue(), Font.class, "font");
    testObservableValue(widget, "", attribute.getCursorValue(), Cursor.class, "cursor");
    testObservableValue(widget, "", attribute.getCurrentValue(), String.class, "text");
    testObservableValue(widget, "", attribute.getEnabledValue(), Boolean.TYPE, "enabled");
    testObservableValue(widget, "", attribute.getTooltipValue(), String.class, "toolTipText");
    assertEquals(null, attribute.getMinValue());
    assertEquals(null, attribute.getMaxValue());
    assertEquals(null, attribute.getFieldAssistAdapter());
    assertEquals(null, attribute.getPossibleValuesList());
    assertEquals(null, attribute.getStyleRangeList());

    widget.dispose();
  }
  private void updateLink() {
    if (meControl != null) {
      meControl.dispose();
    }
    if (labelWidget != null) {
      labelWidget.dispose();
    }

    EObject opposite = (EObject) getModelElement().eGet(eReference);
    if (opposite != null) {
      MELinkControlFactory meLinkControlFactory = new MELinkControlFactory();
      meControl =
          meLinkControlFactory.createMELinkControl(
              getItemPropertyDescriptor(), opposite, getModelElement(), getContext());
      meControl.createControl(
          linkArea,
          style,
          getItemPropertyDescriptor(),
          opposite,
          getModelElement(),
          getToolkit(),
          getContext());
    } else {
      labelWidget = getToolkit().createLabel(linkArea, "(Not Set)");
      labelWidget.setBackground(parent.getBackground());
      labelWidget.setForeground(parent.getShell().getDisplay().getSystemColor(SWT.COLOR_DARK_GRAY));
    }
    linkArea.layout(true);
    composite.layout(true);
  }
 private void remove() {
   if (label != null && !label.isDisposed()) {
     label.dispose();
   }
   if (text != null && !text.isDisposed()) {
     text.dispose();
   }
 }
예제 #4
0
  void doRename(boolean showPreview) {
    cancel();

    Image image = null;
    Label label = null;

    fShowPreview |= showPreview;
    try {
      ISourceViewer viewer = fEditor.getViewer();
      if (viewer instanceof SourceViewer) {
        SourceViewer sourceViewer = (SourceViewer) viewer;
        Control viewerControl = sourceViewer.getControl();
        if (viewerControl instanceof Composite) {
          Composite composite = (Composite) viewerControl;
          Display display = composite.getDisplay();

          // Flush pending redraw requests:
          while (!display.isDisposed() && display.readAndDispatch()) {}

          // Copy editor area:
          GC gc = new GC(composite);
          Point size;
          try {
            size = composite.getSize();
            image = new Image(gc.getDevice(), size.x, size.y);
            gc.copyArea(image, 0, 0);
          } finally {
            gc.dispose();
            gc = null;
          }

          // Persist editor area while executing refactoring:
          label = new Label(composite, SWT.NONE);
          label.setImage(image);
          label.setBounds(0, 0, size.x, size.y);
          label.moveAbove(null);
        }
      }

      String newName = fNamePosition.getContent();
      if (fOriginalName.equals(newName)) {
        return;
      }
      RenameSupport renameSupport = undoAndCreateRenameSupport(newName);
      if (renameSupport == null) {
        return;
      }

      Shell shell = fEditor.getSite().getShell();
      if (renameSupport.hasUnresolvedNameReferences()) {
        fShowPreview = true;
      }
      boolean executed;
      if (fShowPreview) { // could have been updated by undoAndCreateRenameSupport(..)
        executed = renameSupport.openDialog(shell, true);
      } else {
        renameSupport.perform(shell, fEditor.getSite().getWorkbenchWindow());
        executed = true;
      }
      if (executed) {
        restoreFullSelection();
      }
    } catch (CoreException ex) {
      DartToolsPlugin.log(ex);
    } catch (InterruptedException ex) {
      // canceling is OK -> redo text changes in that case?
    } catch (InvocationTargetException ex) {
      DartToolsPlugin.log(ex);
    } catch (BadLocationException e) {
      DartToolsPlugin.log(e);
    } finally {
      if (label != null) {
        label.dispose();
      }
      if (image != null) {
        image.dispose();
      }
    }
  }
예제 #5
0
  public void _setWhatsNew() {

    if (sWhatsNew.indexOf("<html") >= 0 || sWhatsNew.indexOf("<HTML") >= 0) {
      BrowserWrapper browser = Utils.createSafeBrowser(cWhatsNew, SWT.NONE);
      if (browser != null) {
        browser.setText(sWhatsNew);
      } else {
        try {
          File tempFile = File.createTempFile("AZU", ".html");
          tempFile.deleteOnExit();
          FileUtil.writeBytesAsFile(tempFile.getAbsolutePath(), sWhatsNew.getBytes("utf8"));
          Utils.launch(tempFile.getAbsolutePath());
          shell.dispose();
          return;
        } catch (IOException e) {
        }
      }
    } else {

      StyledText helpPanel = new StyledText(cWhatsNew, SWT.VERTICAL | SWT.HORIZONTAL);

      helpPanel.setEditable(false);
      try {
        helpPanel.setRedraw(false);
        helpPanel.setWordWrap(false);
        helpPanel.setFont(monospace);

        black = ColorCache.getColor(display, 0, 0, 0);
        white = ColorCache.getColor(display, 255, 255, 255);
        light = ColorCache.getColor(display, 200, 200, 200);
        grey = ColorCache.getColor(display, 50, 50, 50);
        green = ColorCache.getColor(display, 30, 80, 30);
        blue = ColorCache.getColor(display, 20, 20, 80);
        int style;
        boolean setStyle;

        helpPanel.setForeground(grey);

        String[] lines = sWhatsNew.split("\\r?\\n");
        for (int i = 0; i < lines.length; i++) {
          String line = lines[i];

          setStyle = false;
          fg = grey;
          bg = white;
          style = SWT.NORMAL;

          char styleChar;
          String text;

          if (line.length() < 2) {
            styleChar = ' ';
            text = " " + lineSeparator;
          } else {
            styleChar = line.charAt(0);
            text = line.substring(1) + lineSeparator;
          }

          switch (styleChar) {
            case '*':
              text = "  * " + text;
              fg = green;
              setStyle = true;
              break;
            case '+':
              text = "     " + text;
              fg = black;
              bg = light;
              style = SWT.BOLD;
              setStyle = true;
              break;
            case '!':
              style = SWT.BOLD;
              setStyle = true;
              break;
            case '@':
              fg = blue;
              setStyle = true;
              break;
            case '$':
              bg = blue;
              fg = white;
              style = SWT.BOLD;
              setStyle = true;
              break;
            case ' ':
              text = "  " + text;
              break;

            default:
              text = styleChar + text;
          }

          helpPanel.append(text);

          if (setStyle) {
            int lineCount = helpPanel.getLineCount() - 1;
            int charCount = helpPanel.getCharCount();
            //          System.out.println("Got Linecount " + lineCount + ", Charcount " +
            // charCount);

            int lineOfs = helpPanel.getOffsetAtLine(lineCount - 1);
            int lineLen = charCount - lineOfs;
            //          System.out.println("Setting Style : " + lineOfs + ", " + lineLen);
            helpPanel.setStyleRange(new StyleRange(lineOfs, lineLen, fg, bg, style));
            helpPanel.setLineBackground(lineCount - 1, 1, bg);
          }
        }

        helpPanel.setRedraw(true);
      } catch (Exception e) {
        System.out.println("Unable to load help contents because:" + e);
        // e.printStackTrace();
      }
    }

    if (labelLoading != null && !labelLoading.isDisposed()) {
      labelLoading.dispose();
    }
    shell.layout(true, true);
  }
예제 #6
0
 /*
  * (non-Javadoc)
  *
  * @see org.eclipse.ui.part.IPage#dispose()
  */
 public void dispose() {
   if (!fMessageLabel.isDisposed()) fMessageLabel.dispose();
 }