// ============================================================================
//
// Copyright (C) 2006-2012 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.ui.context.model.tree;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.CheckboxCellEditor;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.widgets.Tree;
import org.talend.core.runtime.i18n.Messages;
import org.talend.core.ui.context.ContextTreeValuesComposite;
/**
* cli class global comment. Detailled comment
*
* This action is used to group the text by Context.
*/
public class GroupByContextAction extends Action {
private ContextTreeValuesComposite parentModel;
public GroupByContextAction(ContextTreeValuesComposite parentModel) {
super(Messages.getString("GroupByContextAction.groupContext"), IAction.AS_RADIO_BUTTON); //$NON-NLS-1$
this.parentModel = parentModel;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.action.Action#run()
*/
@Override
public void run() {
if (parentModel == null) {
return;
}
parentModel.getPreferenceStore().setValue(ContextTreeConstants.PRESENTATION_TYPE_KEY,
ContextTreeConstants.CONTEXT_COLUMN_PROPERTY);
parentModel.getColumn1st().setText(ContextTreeConstants.getContextColumnName());
parentModel.getColumn2nd().setText(ContextTreeConstants.getVariableColumnName());
parentModel.getViewer().setColumnProperties(ContextTreeConstants.GROUP_BY_CONTEXT_COLUMN_PROPERTIES);
GroupByContextProvider labelprovider = new GroupByContextProvider();
parentModel.setProviderProxy(labelprovider);
Tree tree = parentModel.getViewer().getTree();
parentModel.getViewer()
.setCellEditors(
new CellEditor[] { null, null, new CheckboxCellEditor(tree), new TextCellEditor(tree),
new TextCellEditor(tree) });
parentModel.getViewer().refresh();
parentModel.getViewer().expandAll();
parentModel.checkItemValueErrors(tree.getItems());
}
}