package org.ovirt.engine.ui.webadmin.widget.table.cell; import org.ovirt.engine.core.common.businessentities.gluster.GlusterVolumeEntity; import org.ovirt.engine.ui.common.widget.table.cell.AbstractCell; import org.ovirt.engine.ui.webadmin.ApplicationConstants; import org.ovirt.engine.ui.webadmin.ApplicationMessages; import org.ovirt.engine.ui.webadmin.ApplicationResources; import org.ovirt.engine.ui.webadmin.ApplicationTemplates; import com.google.gwt.core.shared.GWT; import com.google.gwt.resources.client.ImageResource; import com.google.gwt.safehtml.shared.SafeHtml; import com.google.gwt.safehtml.shared.SafeHtmlBuilder; import com.google.gwt.safehtml.shared.SafeHtmlUtils; import com.google.gwt.user.client.ui.AbstractImagePrototype; public class VolumeInfoCell extends AbstractCell<GlusterVolumeEntity> { private static final ApplicationResources resources = GWT.create(ApplicationResources.class); private static final ApplicationConstants constants = GWT.create(ApplicationConstants.class); private static final ApplicationTemplates applicationTemplates = GWT.create(ApplicationTemplates.class); private static final ApplicationMessages messages = GWT.create(ApplicationMessages.class); protected ImageResource geoRepMasterImage = resources.volumeGeoRepMaster(); protected ImageResource geoRepSlaveImage = resources.volumeGeoRepSlave(); protected ImageResource snapshotScheduledImage = resources.snapshotScheduledImage(); @Override public void render(Context context, GlusterVolumeEntity volume, SafeHtmlBuilder sb, String id) { // Nothing to render if no volume is provided: if (volume == null) { return; } if (volume.getIsGeoRepMaster()) { SafeHtml geoRepMasterHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(geoRepMasterImage).getHTML()); sb.append(applicationTemplates.imageWithHoverTextAndContainerId(geoRepMasterHtml, constants.geoRepMasterVolumeToolTip(), id)); } if (volume.getIsGeoRepSlave()) { SafeHtml geoRepSlaveHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(geoRepSlaveImage).getHTML()); String[] volClusterNames = formatVolClusterName(volume.getGeoRepMasterVolAndClusterName()); String volName = volClusterNames[0]; String clusterName = volClusterNames.length == 2 ? volClusterNames[1] : "UNKNOWN"; //$NON-NLS-1$ sb.append(applicationTemplates.imageWithHoverTextAndContainerId(geoRepSlaveHtml, messages.geoRepSlaveVolumeToolTip(volName, clusterName), id)); } if (volume.getSnapshotScheduled()) { SafeHtml snapshotScheduledHtml = SafeHtmlUtils.fromTrustedString(AbstractImagePrototype.create(snapshotScheduledImage).getHTML()); sb.append(applicationTemplates.imageWithHoverTextAndContainerId(snapshotScheduledHtml, constants.glusterVolumeSnapshotsScheduledToolTip(), id)); } } private String[] formatVolClusterName(String volClusterName) { if (volClusterName == null) { return null; } String[] names = volClusterName.split("\\|"); //$NON-NLS-1$ return names; } }