Package org.emftrace.quarc.ui.external

Examples of org.emftrace.quarc.ui.external.ColumnViewerSorter


            (TableItem) cell.getItem()) + 1)); // +1 due to index
                              // starts with 0
      }
    });

    new ColumnViewerSorter(tableViewer, nameColumn) {

      protected int doCompare(Viewer viewer, Object e1, Object e2) {
        return ((Element) e1).getName().compareTo(
            ((Element) e2).getName());
      }

    };

    final HashMap<TableColumn, Element> elementColumnMap = new HashMap<TableColumn, Element>();

    /////add an ExpandListener to all nodes
    final IExpandListener expandListener = new IExpandListener() {
     
      @Override
      public void expanded() {
        tableViewer.refresh();
       
      }
     
      @Override
      public void collapsed() {
        tableViewer.refresh();
       
      }
    };
   
    for (Object node : builder.getZestGraph().getNodes()){
      if (node instanceof GSSElementGraphNode){
        ((GSSElementGraphNode)node).getElementFigure().addExpandListener(expandListener);
      }
    }
   
    /////remove the ExpandListener after dispose
    tableViewer.getTable().addDisposeListener( new DisposeListener() {
     
      @Override
      public void widgetDisposed(DisposeEvent e) {
        for (Object node : builder.getZestGraph().getNodes()){
          if (node instanceof GSSElementGraphNode){
            ((GSSElementGraphNode)node).getElementFigure().removeExpandListener(expandListener);
          }
        }
       
      }
    });
   
    //the content provider
    ///show elements of visible nodes only
    tableViewer.setContentProvider( new ArrayContentProvider(){

      @Override
      public Object[] getElements(Object inputElement) {
        List<Element> inputList = (List<Element>) inputElement;
        List<Element> result = new ArrayList<Element>();
        for (Element e : inputList){
          if (builder.getNodeForElement(e).isVisbile())
            result.add(e);
        }
      Element [] output = new Element[result.size()];
      int i = 0;
      for (Element e : result){
        output[i] = e;
        i++;
      }
      return output;
      }
     
    });

    final List<Element> leafElements = new ArrayList<Element>();
    final List<Element> markedLeafElements = new ArrayList<Element>();
    boolean hasMarkedElements = !builder.getSelectedElements().isEmpty();

    if (showRatingsToGoals) {
      leafElements.addAll(builder.getCacheManager()
          .getLeafApplicableElementElements(GSSLayer.layer1));
      if (hasMarkedElements)
        markedLeafElements.addAll(builder.getMarkedLeafGoals());
    } else {
      leafElements.addAll(builder.getCacheManager()
          .getLeafApplicableElementElements(GSSLayer.layer3));
      if (hasMarkedElements)
        markedLeafElements.addAll(builder.getMarkedLeafPrinciples());

    }

    boolean weightsIncluded = false;
    if (showRatingsToGoals)
      weightsIncluded = !builder.getCacheManager().getSelectedGoals()
          .isEmpty();
    else
      weightsIncluded = !builder.getCacheManager()
          .getSelectedPrinciples().isEmpty();

    for (final Object leafElement : leafElements) {
      // if (leafElement instanceof GSS.Goal) {
      if (weightsIncluded) {
        final TableViewerColumn weightedImpactViewerColumn = new TableViewerColumn(
            tableViewer, SWT.NONE);
        elementColumnMap.put(weightedImpactViewerColumn.getColumn(),
            (Element) leafElement);

        Float priority = null;

        if (leafElement instanceof Goal) {
          priority = builder.getCacheManager()
              .getSelectedGoalPriority((Goal) leafElement);
        } else if (leafElement instanceof Principle) {
          priority = builder.getCacheManager()
              .getSelectedPrinciplePriority(
                  (Principle) leafElement);
        }
        if (priority == null)
          priority = 0.0f;

        weightedImpactViewerColumn.getColumn().setText(
            String.format("%s (%.2f)",
                ((Element) leafElement).getName(), priority));
        weightedImpactViewerColumn.getColumn().setToolTipText("the weighted rating to "+((Element) leafElement).getName());
       
        weightedImpactViewerColumn.getColumn().setWidth(100);

        weightedImpactViewerColumn.getColumn().setMoveable(true);
        weightedImpactViewerColumn.getColumn().setResizable(true);
        new ColumnViewerSorter(tableViewer, weightedImpactViewerColumn) {

          protected int doCompare(Viewer viewer, Object e1, Object e2) {
            Element element = elementColumnMap.get(tableViewer
                .getTable().getSortColumn());
            Float v1 = calcWeightedImpact(builder, element,
                (Element) e1);
            Float v2 = calcWeightedImpact(builder, element,
                (Element) e2);
            return v1.compareTo(v2);
          }
        };

        weightedImpactViewerColumn
            .setLabelProvider(new CellLabelProvider() {
              public void update(ViewerCell cell) {

                String weightString = calcWeightedImpactString(
                    builder,(Element) leafElement,
                    (Element) cell.getElement());
                float impact = calcWeightedImpact(builder,
                    (Element)leafElement,
                    (Element) cell.getElement());

                Color backgroundColor = null;
                Color foregroundColor = null;
                if (symbolsCheckbox.getSelection()) {

                  setSymbol(cell, impact);
                } else if (grlSymbolsCheckbox.getSelection()) {
                  setGRLSymbol(cell, impact);
                } else {
                  cell.setFont(Display.getDefault()
                      .getSystemFont());
                  cell.setText(weightString);
                }

                if (attributeExplorerCheckbox.getSelection()) {
                  if (impact >= thresholdSpinner
                      .getSelection()) {
                    backgroundColor = new Color(null, 255,
                        255, 0);
                    foregroundColor = new Color(null, 0, 0,
                        0);
                  } else {
                    backgroundColor = new Color(null, 255,
                        255, 255);
                    foregroundColor = new Color(null, 0, 0,
                        0);
                  }
                } else if (heatmapCheckbox.getSelection()) {

                  backgroundColor = DefaultColors
                      .getBackgroundColor(impact);
                  foregroundColor = DefaultColors
                      .getForegroundColor(impact);
                } else {

                  backgroundColor = new Color(null, 255, 255,
                      255);
                  foregroundColor = new Color(null, 0, 0, 0);
                }

                cell.setBackground(backgroundColor);
                cell.setForeground(foregroundColor);

              }

            });

      }

      final TableViewerColumn unweightedImpactViewerColumn = new TableViewerColumn(
          tableViewer, SWT.NONE);

      elementColumnMap.put(unweightedImpactViewerColumn.getColumn(),
          (Element) leafElement);

      unweightedImpactViewerColumn.getColumn().setText(
          String.format("%s", ((Element) leafElement).getName()));
     
      unweightedImpactViewerColumn.getColumn().setToolTipText("the rating to "+((Element) leafElement).getName());
     
      unweightedImpactViewerColumn.getColumn().setWidth(100);

      unweightedImpactViewerColumn.getColumn().setMoveable(true);

      unweightedImpactViewerColumn.getColumn().setResizable(true);

      new ColumnViewerSorter(tableViewer, unweightedImpactViewerColumn) {

        protected int doCompare(Viewer viewer, Object e1, Object e2) {
          Element element = elementColumnMap.get(tableViewer
              .getTable().getSortColumn());
          Float v1 = getRating(builder, element, (Element) e1);
View Full Code Here


          cell.setForeground(foregroundColor);
        }
      });

      new ColumnViewerSorter(tableViewer, viewerColumn) {

        protected int doCompare(Viewer viewer, Object e1, Object e2) {
          AbstractCalculator calculator = calculatorsColumnMap
              .get(tableViewer.getTable().getSortColumn());
View Full Code Here

TOP

Related Classes of org.emftrace.quarc.ui.external.ColumnViewerSorter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.