Skip to content

Commit

Permalink
JBIDE-20167 Openshift Tooling Usage Tracking. Replaced countEvent() b…
Browse files Browse the repository at this point in the history
…y trackEvent(). So we will send all events right away instead of counting them for 24 hours.
  • Loading branch information
alexeykazakov authored and adietish committed Aug 11, 2015
1 parent 45a6aeb commit 70a1e8a
Show file tree
Hide file tree
Showing 5 changed files with 289 additions and 64 deletions.
Expand Up @@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.openshift.internal.common.ui.utils;

import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.viewers.CellLabelProvider;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
Expand Down Expand Up @@ -66,6 +67,10 @@ public <E>ColumnBuilder<E> column(IColumnLabelProvider<E> columnLabelProvider) {
return new ColumnBuilder<E>().labelProvider(columnLabelProvider);
}

public <E>ColumnBuilder<E> column(CellLabelProvider cellLabelProvider) {
return new ColumnBuilder<E>().labelProvider(cellLabelProvider);
}

public TableViewer buildViewer() {
return viewer;
}
Expand All @@ -74,6 +79,7 @@ public class ColumnBuilder<E> {

private int alignement;
private IColumnLabelProvider<E> columnLabelProvider;
private CellLabelProvider cellLabelProvider;
private ICellToolTipProvider<E> cellToolTipProvider;
private String name;
private int weight;
Expand All @@ -87,6 +93,11 @@ public ColumnBuilder<E> labelProvider(IColumnLabelProvider<E> labelProvider) {
return this;
}

public ColumnBuilder<E> labelProvider(CellLabelProvider labelProvider) {
this.cellLabelProvider = labelProvider;
return this;
}

public ColumnBuilder<E> cellToolTipProvider(ICellToolTipProvider<E> cellToolTipProvider) {
this.cellToolTipProvider = cellToolTipProvider;
return this;
Expand Down Expand Up @@ -118,36 +129,53 @@ public TableViewerBuilder buildColumn() {
}
TableViewerColumn column = new TableViewerColumn(viewer, alignement);
column.getColumn().setText(name);
column.setLabelProvider(new CellLabelProvider() {
setLabelAndTooltipProviders(columnLabelProvider, cellLabelProvider, cellToolTipProvider, column);
tableLayout.setColumnData(column.getColumn(), new ColumnWeightData(weight, minWidth, true));
return TableViewerBuilder.this;
}

@Override
public void update(ViewerCell cell) {
@SuppressWarnings("unchecked")
String cellValue = columnLabelProvider.getValue((E) cell.getElement());
cell.setText(cellValue);
}

@SuppressWarnings("unchecked")
@Override
public String getToolTipText(Object object) {
if(cellToolTipProvider != null) {
return cellToolTipProvider.getToolTipText((E) object);
private void setLabelAndTooltipProviders(
final IColumnLabelProvider<E> labelProvider, final CellLabelProvider cellLabelProvider, final ICellToolTipProvider<E> tooltipProvider, TableViewerColumn column) {
Assert.isLegal(labelProvider != null
|| cellLabelProvider != null
, "set either IColumnLabelProvider or CellLabelProvider");
Assert.isLegal((cellLabelProvider != null && tooltipProvider == null)
|| cellLabelProvider == null
, "cannot use ITooltipProvider with with CellLabelProvider");
if (labelProvider != null) {
column.setLabelProvider(new CellLabelProvider() {

@Override
public void update(ViewerCell cell) {
if (labelProvider != null) {
String cellValue = labelProvider.getValue((E) cell.getElement());
cell.setText(cellValue);
}
}
return super.getToolTipText(object);
};

@SuppressWarnings("unchecked")
@Override
public int getToolTipDisplayDelayTime(Object element) {
if(cellToolTipProvider != null) {
return cellToolTipProvider.getToolTipDisplayDelayTime((E) element);

@SuppressWarnings("unchecked")
@Override
public String getToolTipText(Object object) {
if (tooltipProvider != null) {
return tooltipProvider.getToolTipText((E) object);
} else {
return super.getToolTipText(object);
}
};

@SuppressWarnings("unchecked")
@Override
public int getToolTipDisplayDelayTime(Object element) {
if (tooltipProvider != null) {
return tooltipProvider.getToolTipDisplayDelayTime((E) element);
} else {
return super.getToolTipDisplayDelayTime(element);
}
}
return super.getToolTipDisplayDelayTime(element);
}

});
tableLayout.setColumnData(column.getColumn(), new ColumnWeightData(weight, minWidth, true));
return TableViewerBuilder.this;
});
} else {
column.setLabelProvider(cellLabelProvider);
}
}
}

Expand Down
@@ -0,0 +1,88 @@
/*******************************************************************************
* Copyright (c) 2015 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
* Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Red Hat, Inc. - initial API and implementation
******************************************************************************/
package org.jboss.tools.openshift.internal.common.ui.utils;

import java.util.HashMap;
import java.util.Map;

import org.eclipse.jface.viewers.ViewerCell;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.TableEditor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;

/**
* A manager that controls image based decorations for table viewer cells.
*
* @author Andre Dietisheim
*/
public class TableViewerCellDecorationManager {

private Image image;
private Table table;

/**
* @param table
* the table to handle cell decorations for
* @param image
* the image to show as decoration
*/
public TableViewerCellDecorationManager(Table table, Image image) {
this.image = image;
this.table = table;
}

private Map<TableItem, TableEditor> decorationByItem = new HashMap<TableItem, TableEditor>();

public void show(ViewerCell cell) {
Control decoration = createDecoration(image, table);
TableEditor editor = decorationByItem.get((TableItem) cell.getItem());
if (editor == null) {
editor = createTableEditor(image, table);
decorationByItem.put((TableItem) cell.getItem(), editor);
}
editor.setEditor(decoration, (TableItem) cell.getItem(), cell.getColumnIndex());
}

public void hide(ViewerCell cell) {
TableEditor editor = decorationByItem.get((TableItem) cell.getItem());
if (editor != null) {
Control decoration = editor.getEditor();
if (decoration != null) {
decoration.dispose();
}
editor.setEditor(null);
}
}

private Control createDecoration(Image image, Table table) {
Label validationDecoration = new Label(table, SWT.None);
validationDecoration.setImage(image);
return validationDecoration;
}

private TableEditor createTableEditor(Image image, Table table) {
TableEditor tableEditor = new TableEditor(table);
tableEditor.grabHorizontal = false;
tableEditor.grabVertical = false;
Rectangle bounds = image.getBounds();
tableEditor.minimumHeight = bounds.height;
tableEditor.minimumWidth = bounds.width;
tableEditor.verticalAlignment = SWT.BEGINNING;
tableEditor.horizontalAlignment = SWT.LEFT;

return tableEditor;
}
}
Expand Up @@ -18,7 +18,7 @@
* A column provider for template parameters
* @author jeff.cantrill
*/
public class TemplateParameterColumnLabelProvider implements IColumnLabelProvider<IParameter>{
public class TemplateParameterValueColumnLabelProvider implements IColumnLabelProvider<IParameter>{

protected static final String GENERATED = "(generated)";

Expand Down

0 comments on commit 70a1e8a

Please sign in to comment.