blob: 7dc8edd0373abbdcc598e939e056b6af5e6f4ab8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 Chase Technology Ltd - http://www.chasetechnology.co.uk
* 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:
* Doug Satchwell (Chase Technology Ltd) - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.xsl.internal.debug.ui.tabs.main;
import java.util.Arrays;
import java.util.List;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.wst.xsl.launching.config.LaunchAttribute;
import org.eclipse.wst.xsl.launching.config.LaunchTransform;
public class ParametersContentProvider implements IStructuredContentProvider
{
private LaunchTransform stylesheetEntry;
private ParameterViewer parameterViewer;
public Object[] getElements(Object inputElement)
{
if (stylesheetEntry == null)
return new Object[0];
return stylesheetEntry.getParameters().toArray();
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
{
stylesheetEntry = (LaunchTransform) newInput;
parameterViewer = (ParameterViewer) viewer;
}
public void dispose()
{
}
public LaunchAttribute[] getParameters()
{
return (LaunchAttribute[]) stylesheetEntry.getParameters().toArray(new LaunchAttribute[0]);
}
public void removeParameters(LaunchAttribute[] entries)
{
for (LaunchAttribute parameter : entries)
{
stylesheetEntry.getParameters().remove(parameter);
}
TableItem[] items = parameterViewer.getTable().getItems();
List<LaunchAttribute> entryList = Arrays.asList(entries);
Object sel = null;
for (int i = items.length - 1; i >= 0; i--)
{
TableItem item = items[i];
if (!entryList.contains(item.getData()))
{
sel = item.getData();
break;
}
}
parameterViewer.remove(entries);
if (sel != null)
parameterViewer.setSelection(new StructuredSelection(sel), true);
}
public void addParameter(LaunchAttribute parameter)
{
stylesheetEntry.getParameters().add(parameter);
parameterViewer.add(parameter);
parameterViewer.setSelection(new StructuredSelection(parameter), true);
// parameterViewer.refresh();
}
}