* @param style para el composite
* @return composite con el estado del robot
*/
public Composite getStatusPannel(Composite parent, int style) throws ComponentGUIException
{
CTabFolder tabs;
CTabItem sensors;
CTabItem robot;
Composite statusPannel = new Composite(parent,style);
GridLayout robotStatusLayout = new GridLayout();
statusPannel.setLayout(robotStatusLayout);
try
{
tabs = new CTabFolder(statusPannel, SWT.FLAT | SWT.TOP | SWT.BORDER);
{
sensors = new CTabItem(tabs,SWT.NONE);
sensors.setText("Sensores");
sensors.setImage(SWTResourceManager.getImage("resources/icons/icon24x24/enable/System-ColorSync.png"));
{
sensorComposite = new Composite(tabs,SWT.NONE);
GridData sensorCompositeLData = new GridData();
sensorCompositeLData.horizontalAlignment = GridData.BEGINNING;
sensorCompositeLData.verticalAlignment = GridData.BEGINNING;
sensorCompositeLData.grabExcessHorizontalSpace = true;
sensorCompositeLData.grabExcessVerticalSpace = false;
GridLayout sensorCompositeLayout = new GridLayout();
sensorCompositeLayout.numColumns = 2;
sensorCompositeLayout.marginWidth = 0;
sensorCompositeLayout.marginHeight = 0;
sensorCompositeLayout.verticalSpacing = 1;
sensorCompositeLayout.marginLeft = 3;
sensorCompositeLayout.marginTop = 2;
sensors.setControl(sensorComposite);
sensorComposite.setLayout(sensorCompositeLayout);
sensorComposite.setLayoutData(sensorCompositeLData);
{
for (int i=0; i<((Robot)component).getFeatures().length;i++)
{
Plugin plugin = ClassManager.getInstance().getPluginByName(((Robot)component).getFeatures()[i].getClass().getCanonicalName());
if (plugin != null)
{
FeatureGUI featureGUI = (FeatureGUI)plugin.makeGUInstance(((Robot)component).getFeatures()[i]);
featureStatus = featureGUI.getStatusPannel( sensorComposite, sensorComposite.getStyle());
//Fuerzo layout
GridData featureStatusLData = new GridData();
featureStatusLData.horizontalAlignment = GridData.FILL;
featureStatusLData.verticalAlignment = GridData.FILL;
featureStatusLData.grabExcessHorizontalSpace = true;
featureStatusLData.grabExcessVerticalSpace = true;
featureStatus.setLayoutData(featureStatusLData);
}
}
}
sensorComposite.layout(true);
}
neuralNet = new CTabItem(tabs,SWT.NONE);
neuralNet.setText("Red Neuronal");
neuralNet.setImage(SWTResourceManager.getImage("resources/icons/icon24x24/enable/neuron.png"));
{
Plugin neuralNetPlugin = ClassManager.getInstance().getPluginByName(((Robot)component).getNeuralNetwork().getClass().getCanonicalName());
if (neuralNetPlugin != null)
{
NeuralNetworkGUI nnGUI = (NeuralNetworkGUI) neuralNetPlugin.makeGUInstance(((Robot)component).getNeuralNetwork());
Composite neuralNetComposite = nnGUI.getStatusPannel(tabs,SWT.NONE);
neuralNet.setControl(neuralNetComposite);
GridData neuralNetCompositeLData = new GridData();
neuralNetCompositeLData.horizontalAlignment = GridData.BEGINNING;
neuralNetCompositeLData.verticalAlignment = GridData.BEGINNING;
neuralNetCompositeLData.grabExcessHorizontalSpace = true;
neuralNetCompositeLData.grabExcessVerticalSpace = false;
GridLayout neuralNetCompositeLayout = new GridLayout();
neuralNetComposite.setLayout(neuralNetCompositeLayout);
neuralNetComposite.setLayoutData(neuralNetCompositeLData);
neuralNetComposite.layout(true);
}
}
commChannel = new CTabItem(tabs,SWT.NONE);
commChannel.setText("Canal de Comunicaciones");
commChannel.setImage(SWTResourceManager.getImage("resources/icons/icon24x24/enable/Connection.png"));
{
Plugin ccPlugin = ClassManager.getInstance().getPluginByName(((Robot)component).getCommChannel().getClass().getCanonicalName());
if (ccPlugin != null)
{
CommunicationChannelGUI ccGUI = (CommunicationChannelGUI) ccPlugin.makeGUInstance(((Robot)component).getCommChannel());
Composite ccComposite = ccGUI.getStatusPannel(tabs,SWT.NONE);
commChannel.setControl(ccComposite);
GridData ccCompositeLData = new GridData();
ccCompositeLData.horizontalAlignment = GridData.BEGINNING;
ccCompositeLData.verticalAlignment = GridData.BEGINNING;
ccCompositeLData.grabExcessHorizontalSpace = true;
ccCompositeLData.grabExcessVerticalSpace = false;
GridLayout ccCompositeLayout = new GridLayout();
ccComposite.setLayout(ccCompositeLayout);
ccComposite.setLayoutData(ccCompositeLData);
ccComposite.layout(true);
}
}
{
robot = new CTabItem(tabs, SWT.NONE);
robot.setText("Robot");
robot.setImage(SWTResourceManager.getImage("resources/icons/icon24x24/enable/AIBO210.png"));
{
Label roboText = new Label(tabs,SWT.NONE);
roboText.setText( "Robot Resuelve Laberintos v1.0\n" +
"Desarrollado por:\n" +
"Augusto Vega (ajvega@fi.uba.ar)\n" +
"Juan Caracoche (jmcaracoche@gmail.com)");
robot.setControl(roboText);
}
}
}
tabs.layout(true);
GridData cTabFolder1LData = new GridData();
cTabFolder1LData.grabExcessHorizontalSpace = true;
cTabFolder1LData.grabExcessVerticalSpace = true;
cTabFolder1LData.horizontalAlignment = GridData.FILL;
cTabFolder1LData.verticalAlignment = GridData.FILL;
tabs.setLayoutData(cTabFolder1LData);
tabs.setSelection(0);
}
catch (Exception e)
{
throw new ComponentGUIException( e.getMessage() );