custom renderer

Signed-off-by: asharani-murugesh <asharani.murugesh@in.bosch.com>
This commit is contained in:
asharani-murugesh
2016-02-16 15:01:54 +01:00
parent d9324db83e
commit 7a41aef8f0
4 changed files with 129 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
<module>
<!-- Inherit DefaultWidgetSet -->
<inherits name="com.vaadin.DefaultWidgetSet"/>
<inherits name="org.vaadin.alump.distributionbar.gwt.DistributionBarWidgetset" />
<inherits name="org.eclipse.hawkbit.ui.AppWidgetSet" />
<inherits name="org.vaadin.peter.contextmenu.ContextmenuWidgetset" />
<inherits name="org.vaadin.tokenfield.TokenfieldWidgetset" />
<inherits name="org.vaadin.hene.flexibleoptiongroup.widgetset.FlexibleOptionGroupWidgetset" />
<inherits name="org.eclipse.hawkbit.ui.distributionbar2.CustomRenderersWidgetSet" />
</module>

View File

@@ -0,0 +1,17 @@
package org.eclipse.hawkbit.ui.distributionbar.client;
import com.vaadin.client.connectors.AbstractRendererConnector;
import com.vaadin.shared.ui.Connect;
@Connect(org.eclipse.hawkbit.ui.distributionbar.renderers.StringDistributionBarRenderer.class)
public class StringDistributionBarRendererConnector extends
AbstractRendererConnector<String> {
private static final long serialVersionUID = 7697966991925490786L;
@Override
public org.eclipse.hawkbit.ui.distributionbar.client.renderers.StringDistributionBarRenderer getRenderer() {
return (org.eclipse.hawkbit.ui.distributionbar.client.renderers.StringDistributionBarRenderer) super.getRenderer();
}
}

View File

@@ -0,0 +1,77 @@
package org.eclipse.hawkbit.ui.distributionbar.client.renderers;
import java.util.HashMap;
import java.util.Map;
import org.vaadin.alump.distributionbar.gwt.client.GwtDistributionBar;
import com.google.gwt.core.client.GWT;
import com.vaadin.client.renderers.WidgetRenderer;
import com.vaadin.client.widget.grid.RendererCellReference;
public class StringDistributionBarRenderer extends WidgetRenderer<String, GwtDistributionBar> {
@Override
public GwtDistributionBar createWidget() {
return GWT.create(GwtDistributionBar.class);
}
@Override
public void render(RendererCellReference cell, String input, GwtDistributionBar widget) {
if (null != input) {
widget.setNumberOfParts(2);
Map<String, Long> map = formatData(input);
if (!map.isEmpty()) {
final Long notStartedTargetsCount = map.keySet().contains("NOTSTARTED") ? map.get("NOTSTARTED") : 0L;
final Long runningTargetsCount = map.keySet().contains("RUNNING") ? map.get("RUNNING") : 0L;
final Long scheduledTargetsCount = map.keySet().contains("SCHEDULED") ? map.get("SCHEDULED") : 0L;
final Long errorTargetsCount = map.keySet().contains("ERROR") ? map.get("ERROR") : 0L;
final Long finishedTargetsCount = map.keySet().contains("FINISHED") ? map.get("FINISHED") : 0L;
final Long cancelledTargetsCount = map.keySet().contains("CANCELLED") ? map.get("CANCELLED") : 0L;
if (isNoTargets(errorTargetsCount, notStartedTargetsCount, runningTargetsCount, scheduledTargetsCount,
finishedTargetsCount, cancelledTargetsCount)) {
setBarPartSize(widget, "SCHEDULED".toLowerCase(), 0, 0);
setBarPartSize(widget, "FINISHED".toString().toLowerCase(), 0, 1);
} else {
widget.setNumberOfParts(6);
setBarPartSize(widget, "NOTSTARTED".toString().toLowerCase(), notStartedTargetsCount.intValue(), 0);
setBarPartSize(widget, "SCHEDULED".toString().toLowerCase(), scheduledTargetsCount.intValue(), 1);
setBarPartSize(widget, "RUNNING".toLowerCase(), scheduledTargetsCount.intValue(), 2);
setBarPartSize(widget, "ERROR".toLowerCase(), errorTargetsCount.intValue(), 3);
setBarPartSize(widget, "FINISHED".toLowerCase(), finishedTargetsCount.intValue(), 4);
setBarPartSize(widget, "CANCELLED".toLowerCase(), cancelledTargetsCount.intValue(), 5);
}
}
widget.updateParts();
}
}
private Map<String, Long> formatData(String input) {
Map<String, Long> details = new HashMap<>();
String[] tempData = input.split(",");
for (String statusWithCount : tempData) {
String[] statusWithCountList = statusWithCount.split(":");
details.put(statusWithCountList[0], new Long(statusWithCountList[1]));
}
return details;
}
private static boolean isNoTargets(Long errorTargetsCount, Long notStartedTargetsCount, Long runningTargetsCount,
Long scheduledTargetsCount, Long finishedTargetsCount, Long cancelledTargetsCount) {
if (errorTargetsCount == 0 && notStartedTargetsCount == 0 && runningTargetsCount == 0
&& scheduledTargetsCount == 0 && finishedTargetsCount == 0 && cancelledTargetsCount == 0) {
return true;
}
return false;
}
public void setBarPartSize(final GwtDistributionBar bar, final String statusName, final int count,
final int index) {
bar.setPartSize(index, count);
bar.setPartTooltip(index, statusName);
// check thi:::
bar.setPartStyleName(index, index, "status-bar-part-" + statusName);
}
}

View File

@@ -0,0 +1,18 @@
package org.eclipse.hawkbit.ui.distributionbar.renderers;
import com.vaadin.ui.Grid.AbstractRenderer;
public class StringDistributionBarRenderer extends AbstractRenderer<String> {
private static final long serialVersionUID = -4543220859821576209L;
/**
* Creates a new text renderer
*/
public StringDistributionBarRenderer() {
super(String.class, null);
}
}