/** * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * 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. * */ package gov.redhawk.internal.ui; import java.util.ArrayList; import java.util.List; import mil.jpeojtrs.sca.util.AnyUtils; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.views.properties.IPropertyDescriptor; import org.eclipse.ui.views.properties.IPropertySource2; import BULKIO.StreamSRI; import CF.DataType; /** * @noreference This class is not intended to be referenced by clients. */ public class StreamSRIPropertySource implements IPropertySource2 { private enum SriProp implements IPropertyDescriptor { hversion, xstart, xdelta, xunits, subsize, ystart, ydelta, yunits, mode, streamID, blocking, keywords; @Override public CellEditor createPropertyEditor(final Composite parent) { return null; } @Override public String getCategory() { return StreamSRI.class.getName(); } @Override public String getDescription() { return null; } @Override public String getDisplayName() { return name(); } @Override public String[] getFilterFlags() { return null; } @Override public Object getHelpContextIds() { return null; } @Override public Object getId() { return name(); } @Override public ILabelProvider getLabelProvider() { return new LabelProvider() { @Override public String getText(final Object obj) { if (obj instanceof DataType[]) { final DataType[] keywords = (DataType[]) obj; final List<String> result = new ArrayList<String>(); for (final DataType t : keywords) { result.add(getText(t)); } return result.toString(); } else if (obj instanceof DataType) { final DataType t = (DataType) obj; return t.id + ", " + getText(AnyUtils.convertAny(t.value)); } return super.getText(obj); } }; } @Override public boolean isCompatibleWith(final IPropertyDescriptor anotherProperty) { return false; } } private final StreamSRI sri; public StreamSRIPropertySource(final StreamSRI sri) { this.sri = sri; } /** * {@inheritDoc} */ @Override public Object getEditableValue() { return this.sri; } /** * {@inheritDoc} */ @Override public IPropertyDescriptor[] getPropertyDescriptors() { return SriProp.values(); } /** * {@inheritDoc} */ @Override public Object getPropertyValue(final Object id) { switch (SriProp.valueOf((String) id)) { case blocking: return this.sri.blocking; case hversion: return this.sri.hversion; case keywords: return this.sri.keywords; case mode: return this.sri.mode; case streamID: return this.sri.streamID; case subsize: return this.sri.subsize; case xdelta: return this.sri.xdelta; case xstart: return this.sri.xstart; case xunits: return this.sri.xunits; case ydelta: return this.sri.ydelta; case ystart: return this.sri.ystart; case yunits: return this.sri.yunits; default: break; } return null; } /** * {@inheritDoc} */ @Override public void resetPropertyValue(final Object id) { } /** * {@inheritDoc} */ @Override public void setPropertyValue(final Object id, final Object value) { } /** * {@inheritDoc} */ @Override public boolean isPropertyResettable(final Object id) { return false; } /** * {@inheritDoc} */ @Override public boolean isPropertySet(final Object id) { return true; } }