blob: 5c2d6e55230ec2b00218e1be899a8f20e614611e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2007 Boeing.
* All rights reserved. This program and the accompanying materials
* are 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:
* Boeing - initial API and implementation
*******************************************************************************/
package org.eclipse.osee.ats.world;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import org.eclipse.nebula.widgets.xviewer.XViewerFactory;
import org.eclipse.nebula.widgets.xviewer.core.model.SortDataType;
import org.eclipse.nebula.widgets.xviewer.core.model.XViewerColumn;
import org.eclipse.osee.ats.api.config.AtsAttributeValueColumn;
import org.eclipse.osee.ats.column.StateAssigneesColumn;
import org.eclipse.osee.ats.column.StateCompletedColumn;
import org.eclipse.osee.ats.internal.Activator;
import org.eclipse.osee.ats.internal.AtsClientService;
import org.eclipse.osee.ats.util.AtsUtil;
import org.eclipse.osee.ats.util.xviewer.column.XViewerAtsAttributeValueColumn;
import org.eclipse.osee.framework.core.model.type.AttributeType;
import org.eclipse.osee.framework.logging.OseeLog;
import org.eclipse.osee.framework.skynet.core.attribute.AttributeTypeManager;
import org.eclipse.osee.framework.ui.skynet.widgets.xviewer.skynet.SkynetXViewerFactory;
/**
* @author Donald G. Dunne
*/
public class WorldXViewerUtil {
public static void registerOtherColumns(XViewerFactory factory) {
registerAtsAttributeColumns(factory);
registerPluginColumns(factory);
registerStateColumns(factory);
registerConfigurationsColumns(factory);
}
public static void registerPluginColumns(XViewerFactory factory) {
// Register any columns from other plugins
try {
for (IAtsWorldEditorItem item : AtsWorldEditorItems.getItems()) {
for (XViewerColumn xCol : item.getXViewerColumns()) {
factory.registerColumns(xCol);
}
}
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
}
public static void registerAtsAttributeColumns(XViewerFactory factory) {
// Register all ats.* attribute columns
try {
for (AttributeType attributeType : AttributeTypeManager.getAllTypes()) {
if (attributeType.getName().startsWith("ats.")) {
factory.registerColumns(SkynetXViewerFactory.getAttributeColumn(attributeType));
}
}
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
}
public static void registerConfigurationsColumns(XViewerFactory factory) {
List<XViewerAtsAttributeValueColumn> configColumns = getConfigurationColumns();
for (XViewerAtsAttributeValueColumn col : configColumns) {
factory.registerColumns(col);
}
}
public static List<XViewerAtsAttributeValueColumn> getConfigurationColumns() {
List<AtsAttributeValueColumn> columns = AtsClientService.getConfigEndpoint().get().getViews().getAttrColumns();
List<XViewerAtsAttributeValueColumn> configColumns = new ArrayList<>();
for (AtsAttributeValueColumn column : columns) {
try {
AttributeType attrType = AttributeTypeManager.getTypeByGuid(column.getAttrTypeId());
XViewerAtsAttributeValueColumn valueColumn = new XViewerAtsAttributeValueColumn(attrType, column.getWidth(),
AtsUtil.getXViewerAlign(column.getAlign()), column.isVisible(),
SortDataType.valueOf(column.getSortDataType()), column.isColumnMultiEdit(), column.getDescription());
valueColumn.setBooleanNotSetShow(column.getBooleanNotSetShow());
valueColumn.setBooleanOnFalseShow(column.getBooleanOnFalseShow());
valueColumn.setBooleanOnTrueShow(column.getBooleanOnTrueShow());
valueColumn.setActionRollup(column.isActionRollup());
valueColumn.setInheritParent(column.isInheritParent());
configColumns.add(valueColumn);
} catch (Exception ex) {
OseeLog.log(Activator.class, Level.SEVERE, ex);
}
}
return configColumns;
}
public static void registerStateColumns(XViewerFactory factory) {
for (String stateName : AtsClientService.get().getConfigurations().getValidStateNames()) {
factory.registerColumns(new StateAssigneesColumn(stateName));
factory.registerColumns(new StateCompletedColumn(stateName));
}
}
public static XViewerColumn getConfigColumn(String columnId, List<XViewerAtsAttributeValueColumn> configCols) {
for (XViewerAtsAttributeValueColumn col : configCols) {
if (col.getId().equals(columnId)) {
return col;
}
}
return null;
}
public static void addColumn(SkynetXViewerFactory factory, XViewerColumn taskCol, int width, List<XViewerColumn> sprintCols) {
XViewerColumn newCol = taskCol.copy();
newCol.setShow(true);
newCol.setWidth(width);
factory.registerColumns(newCol);
sprintCols.add(newCol);
}
}