blob: ca03ff7ad84615e7f8d02b6f6099531fd0409c1f [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation and others.
// 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:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.authoring.ui.properties;
import java.util.List;
import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.epf.authoring.ui.editors.ColumnDescriptor;
import org.eclipse.epf.authoring.ui.editors.ProcessEditor;
import org.eclipse.epf.authoring.ui.preferences.ApplicationPreferenceConstants;
import org.eclipse.epf.library.edit.TngAdapterFactory;
import org.eclipse.epf.library.edit.util.ConfigurableComposedAdapterFactory;
import com.ibm.icu.util.StringTokenizer;
/**
* The work rollup section for activity
*
* @author Shilpa Toraskar
* @since 1.0
*
*/
public class ActivityWorkRollupSection extends ActivityRollupSection {
/**
* @see org.eclipse.epf.authoring.ui.properties.ActivityRollupSection#initAdapterFactory()
*/
protected void initAdapterFactory() {
// get column descriptors
columnDescriptors = getColumnDescriptors();
// create adapter factory
adapterFactory = TngAdapterFactory.INSTANCE
.createWBSComposedAdapterFactory();
if (adapterFactory instanceof ConfigurableComposedAdapterFactory) {
((ConfigurableComposedAdapterFactory) adapterFactory)
.setFilter(configurator);
}
}
private ColumnDescriptor[] getColumnDescriptors() {
ColumnDescriptor[] descriptors = toColumnDescriptors(store
.getString(ApplicationPreferenceConstants.PREF_WBS_COLUMNS));
// don't show column "Predecessors"
//
int index = -1;
for (int i = 0; i < descriptors.length; i++) {
if(descriptors[i] == ProcessEditor.COL_DESC_PREDECESSORS) {
index = i;
break;
}
}
if(index != -1) {
ColumnDescriptor[] colDescriptors = new ColumnDescriptor[descriptors.length - 1];
if(index > 0) {
System.arraycopy(descriptors, 0, colDescriptors, 0, index);
}
int len = descriptors.length - 1 - index;
if(len > 0) {
System.arraycopy(descriptors, index + 1, colDescriptors, index, len);
}
return colDescriptors;
}
return descriptors;
}
/**
* Convert string into colum descriptor list
* @param str
* @return
* List of column descriptors
*/
public static EList toColumnDescriptorList(String str) {
EList columnDescriptors = new BasicEList();
StringTokenizer tokens = new StringTokenizer(str, ","); //$NON-NLS-1$
while (tokens.hasMoreTokens()) {
String token = tokens.nextToken();
// DON"T PUT INDEX COLUMN
if (!(token.equals(ProcessEditor.COL_DESC_ID.id))) {
Object columnDescriptor = ProcessEditor.idToColumnDescriptorMap
.get(token);
if (columnDescriptor != null) {
columnDescriptors.add(columnDescriptor);
}
}
}
return columnDescriptors;
}
/**
* Convert string into column descriptors
* @param str
* @return
* list of column descriptors
*/
public static ColumnDescriptor[] toColumnDescriptors(String str) {
List list = toColumnDescriptorList(str);
ColumnDescriptor[] columns = new ColumnDescriptor[list.size()];
list.toArray(columns);
return columns;
}
/**
* @see org.eclipse.epf.authoring.ui.properties.ActivityRollupSection#setSectionLabels()
*/
protected void setSectionLabels() {
section.setText(PropertiesResources.Activity_WorkRollup);
section.setDescription(PropertiesResources.Activity_WorkRollupDescription);
}
}