SeriesDialog.java
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008, AIST, the University of Tokyo and General Robotix Inc.
3  * All rights reserved. This program is made available under the terms of the
4  * Eclipse Public License v1.0 which accompanies this distribution, and is
5  * available at http://www.eclipse.org/legal/epl-v10.html
6  * Contributors:
7  * General Robotix Inc.
8  * National Institute of Advanced Industrial Science and Technology (AIST)
9  */
10 package com.generalrobotix.ui.view.graph;
11 
12 //import java.awt.*;
13 import java.net.URL;
14 import java.util.*;
15 
16 
17 import org.eclipse.jface.dialogs.Dialog;
18 import org.eclipse.jface.dialogs.IDialogConstants;
19 import org.eclipse.jface.viewers.ArrayContentProvider;
20 import org.eclipse.jface.viewers.CellEditor;
21 import org.eclipse.jface.viewers.ColorCellEditor;
22 import org.eclipse.jface.viewers.ICellModifier;
23 import org.eclipse.jface.viewers.ITableColorProvider;
24 import org.eclipse.jface.viewers.ITableLabelProvider;
25 import org.eclipse.jface.viewers.LabelProvider;
26 import org.eclipse.jface.viewers.TableViewer;
27 import org.eclipse.jface.viewers.TextCellEditor;
28 import org.eclipse.swt.SWT;
29 import org.eclipse.swt.events.SelectionEvent;
30 import org.eclipse.swt.events.SelectionListener;
31 import org.eclipse.swt.graphics.Color;
32 import org.eclipse.swt.graphics.Image;
33 import org.eclipse.swt.graphics.RGB;
34 import org.eclipse.swt.layout.FillLayout;
35 import org.eclipse.swt.layout.RowData;
36 import org.eclipse.swt.layout.RowLayout;
37 import org.eclipse.swt.widgets.Button;
38 import org.eclipse.swt.widgets.Combo;
39 import org.eclipse.swt.widgets.Composite;
40 import org.eclipse.swt.widgets.Control;
41 import org.eclipse.swt.widgets.Group;
42 import org.eclipse.swt.widgets.Item;
43 import org.eclipse.swt.widgets.Label;
44 import org.eclipse.swt.widgets.Shell;
45 import org.eclipse.swt.widgets.Table;
46 import org.eclipse.swt.widgets.TableColumn;
47 
52 
53 
59 @SuppressWarnings("serial") //$NON-NLS-1$
60 public class SeriesDialog extends Dialog {
61  private boolean updated_;
62  private ArrayList<DataItemInfo> dataItemInfoList_;
63  private ArrayList<DataItemInfo> removedList_;
66 
67  private ArrayList<DataItemInfo> addedList_;
69 
70  // private JTable seriesTable_ = new JTable();
71  private TableViewer tableviewer_;
72  private static final String ROBOT_MODEL = "ROBOT MODEL"; //$NON-NLS-1$
73  private static final String DATA_TYPE = "DATA TYPE"; //$NON-NLS-1$
74  private static final String LINK_NAME = "LINK NAME"; //$NON-NLS-1$
75  private static final String ATTRIBUTE = "ATTRIBUTE"; //$NON-NLS-1$
76  private static final String colNode = MessageBundle.get("dialog.graph.series.table.node"); //$NON-NLS-1$
77  private static final String colAttribute = MessageBundle.get("dialog.graph.series.table.attribute"); //$NON-NLS-1$
78  private static final String colIndex = MessageBundle.get("dialog.graph.series.table.index"); //$NON-NLS-1$
79  private static final String colColor = MessageBundle.get("dialog.graph.series.table.color"); //$NON-NLS-1$
80  private static final String colLegend = MessageBundle.get("dialog.graph.series.table.legend"); //$NON-NLS-1$
81  private Combo comboModel_ ;
82  private Combo comboType_ ;
83  private Combo comboLink_ ;
84  private Combo comboAttr_ ;
85  private Button setButton_;
86  private Button removeButton_;
87 
88  private static final String GRAPH_PROPERTIES = "/resources/graph.properties"; //$NON-NLS-1$
89  private URL url = this.getClass().getResource(GRAPH_PROPERTIES);
90  private Properties prop = new Properties();
92 
94  private final Map<String, ArrayList<String>> nodeMap = new HashMap<String, ArrayList<String>>();
95  private int graphIndex = 0;
96  private List<GrxModelItem> currentModels_ = null;
97  // -----------------------------------------------------------------
98  public SeriesDialog(GraphElement initialGraph, Shell shell) {
99  super(shell);
100  currentGraph_ = initialGraph;
101 
102  tableModel_ = new MyTable();
103 
104  try {
105  prop.load(url.openStream());
106  } catch (java.io.IOException e) {
107  e.printStackTrace();
108  }
109 
110 // this is temporary limit for data type
111  List<String> typeList = new ArrayList<String>();
112  typeList.add("Joint"); //$NON-NLS-1$
113  typeList.add("ForceSensor"); //$NON-NLS-1$
114  typeList.add("Gyro"); //$NON-NLS-1$
115  typeList.add("AccelerationSensor"); //$NON-NLS-1$
116 
117  Iterator<Object> it = prop.keySet().iterator();
118  while (it.hasNext()) {
119  String key = (String) it.next();
120  String[] property = key.split("[.]"); //$NON-NLS-1$
121  if (property.length > 2 && property[2].equals("dataKind") && typeList.contains(property[0])) { //$NON-NLS-1$
122  if (!nodeMap.containsKey(property[0]))
123  nodeMap.put(property[0], new ArrayList<String>());
124  nodeMap.get(property[0]).add(property[1]);
125  }
126  }
127  }
128 
129  protected void configureShell(Shell newShell) {
130  super.configureShell(newShell);
131  newShell.setText(MessageBundle.get("dialog.graph.series.title")); //$NON-NLS-1$
132  }
133 
134  protected Control createDialogArea(Composite parent) {
135  Composite composite = (Composite)super.createDialogArea(parent);
136  composite.setLayout(new RowLayout(SWT.VERTICAL));
137  RowData rowdata = new RowData();
138  rowdata.height = 100;
139  rowdata.width = 600;
140 
141  Label label = new Label(composite, SWT.LEFT);
142  label.setText(MessageBundle.get("dialog.graph.series.dataseries")); //$NON-NLS-1$
143  tableviewer_ = new TableViewer(composite, SWT.FULL_SELECTION | SWT.BORDER);
144  tableviewer_.getControl().setLayoutData(rowdata);
145  Table table = tableviewer_.getTable();
146  table.setFont(Activator.getDefault().getFont("preference_table"));
147  table.setLinesVisible(true);
148  table.setHeaderVisible(true);
149  TableColumn column = new TableColumn(table,SWT.NONE);
150  column.setText(colNode);
151  column.setWidth(100);
152  column = new TableColumn(table,SWT.NONE);
153  column.setText(colAttribute);
154  column.setWidth(100);
155  column = new TableColumn(table,SWT.NONE);
156  column.setText(colIndex);
157  column.setWidth(60);
158  column = new TableColumn(table,SWT.NONE);
159  column.setText(colColor);
160  column.setWidth(60);
161  column = new TableColumn(table,SWT.NONE);
162  column.setText(colLegend);
163  column.setWidth(280);
164 
165  String[] properties = new String[]{ null, null, null, "color", "legend"}; //$NON-NLS-1$ //$NON-NLS-2$
166  tableviewer_.setColumnProperties(properties);
167  CellEditor[] editors = new CellEditor[]{ null, null, null,
168  new ColorCellEditor(table),
169  new TextCellEditor(table) };
170  tableviewer_.setCellEditors(editors);
171  tableviewer_.setContentProvider(new ArrayContentProvider());
172  tableviewer_.setLabelProvider(new MyLabelProvider());
173  tableviewer_.setCellModifier(new MyCellModifier(tableviewer_));
174 
175  tableviewer_.setInput(tableModel_.getList());
176 
177  Composite line3 = new Composite(composite, SWT.NONE);
178  line3.setLayout(new RowLayout());
179  Group group0 = new Group(line3, SWT.NONE);
180  group0.setText(ROBOT_MODEL);
181  group0.setLayout(new FillLayout());
182  comboModel_ = new Combo(group0,SWT.READ_ONLY);
183  comboModel_.addSelectionListener(new SelectionListener() {
184  public void widgetDefaultSelected(SelectionEvent e) {
185  }
186  public void widgetSelected(SelectionEvent e) {
187  comboType_.removeAll();
188  comboLink_.removeAll();
189  comboAttr_.removeAll();
190 
191  Iterator<String> it = nodeMap.keySet().iterator();
192  if (tableModel_.getRowCount() > 0) {
193  String curAttr = currentGraph_.getTrendGraph().getDataItemInfoList()[0].dataItem.attribute;
194  while (it.hasNext()) {
195  String key = it.next();
196  if (nodeMap.get(key).contains(curAttr))
197  comboType_.add(key);
198  }
199  } else {
200  while (it.hasNext()) {
201  comboType_.add(it.next());
202  }
203  }
204  comboType_.setEnabled(true);
205  comboLink_.setEnabled(false);
206  comboAttr_.setEnabled(false);
207  setButton_.setEnabled(false);
208 
209 
210 
211  if(comboType_.getItemCount()>0){
212  comboType_.select(0);
213  comboType_.notifyListeners(SWT.Selection, null);
214  }
215 
216  }
217  });
218  Group group1 = new Group(line3, SWT.NONE);
219  group1.setText(DATA_TYPE);
220  group1.setLayout(new FillLayout());
221  comboType_ = new Combo(group1,SWT.READ_ONLY);
222  comboType_.addSelectionListener(new SelectionListener() {
223  public void widgetDefaultSelected(SelectionEvent e) {
224  }
225  public void widgetSelected(SelectionEvent e) {
226 
227  comboLink_.removeAll();
228  comboAttr_.removeAll();
229 
230  String type = comboType_.getItem(comboType_.getSelectionIndex());
231  String modelName = comboModel_.getItem(comboModel_.getSelectionIndex());
232  Iterator<GrxModelItem> it = currentModels_.iterator();
233  GrxModelItem model=null;
234  while (it.hasNext()) {
235  model = it.next();
236  if(model.getName().equals(modelName))
237  break;
238  }
239  if (type.equals("Joint")) { //$NON-NLS-1$
240  Vector<GrxLinkItem> li = model.links_;
241  for (int i = 0; i < li.size(); i++)
242  comboLink_.add(li.get(i).getName());
243  } else {
244  String t = null;
245  if (type.equals("ForceSensor")) //$NON-NLS-1$
246  t = "Force"; //$NON-NLS-1$
247  else if (type.equals("Gyro")) //$NON-NLS-1$
248  t = "RateGyro"; //$NON-NLS-1$
249  else if (type.equals("AccelerationSensor")) //$NON-NLS-1$
250  t = "Acceleration"; //$NON-NLS-1$
251  String[] snames = model.getSensorNames(t);
252 
253  if (snames != null) {
254  for (int i=0; i<snames.length; i++) {
255  comboLink_.add(snames[i]);
256  }
257  }
258  }
259  comboLink_.setEnabled(true);
260  comboAttr_.setEnabled(false);
261  setButton_.setEnabled(false);
262 
263 
264  if(comboLink_.getItemCount()>0){
265  comboLink_.select(0);
266  comboLink_.notifyListeners(SWT.Selection, null);
267  }
268  }
269  });
270  Group group2 = new Group(line3, SWT.NONE);
271  group2.setText(LINK_NAME);
272  group2.setLayout(new FillLayout());
273  comboLink_ = new Combo(group2,SWT.READ_ONLY);
274  comboLink_.addSelectionListener(new SelectionListener() {
275 
276  public void widgetDefaultSelected(SelectionEvent e) {
277  }
278 
279  public void widgetSelected(SelectionEvent e) {
280 
281  comboAttr_.removeAll();
282 
283  String type = comboType_.getItem(comboType_.getSelectionIndex());
284  List<String> l = nodeMap.get(type);
285  if(type.equals("Joint")){
286  String modelName = comboModel_.getItem(comboModel_.getSelectionIndex());
287  Iterator<GrxModelItem> it = currentModels_.iterator();
288  GrxModelItem model=null;
289  while (it.hasNext()) {
290  model = it.next();
291  if(model.getName().equals(modelName))
292  break;
293  }
294  String linkName = comboLink_.getItem(comboLink_.getSelectionIndex());
295  boolean isControlJoint = false;
296  if(model!=null){
297  GrxLinkItem link = model.getLink(linkName);
298  if(link!=null)
299  if(link.jointType_.equals("rotate") || link.jointType_.equals("slide") )
300  isControlJoint = true;
301  }
302  if (tableModel_.getRowCount() > 0) {
303  String curAttr = (String)tableModel_.getValueAt(0, 1);
304  if(!isControlJoint)
305  if(curAttr.equals("translation") || curAttr.equals("attitude"))
306  comboAttr_.add(curAttr);
307  else
308  ;
309  else
310  if (l.contains(curAttr))
311  comboAttr_.add(curAttr);
312  else
313  ;
314  } else {
315  if(!isControlJoint){
316  comboAttr_.add("translation");
317  comboAttr_.add("attitude");
318  }else {
319  Iterator<String> it0 = l.iterator();
320  while (it0.hasNext()) {
321  comboAttr_.add(it0.next());
322  }
323  }
324  }
325  }else{
326  if (tableModel_.getRowCount() > 0) {
327  String curAttr = (String)tableModel_.getValueAt(0, 1);
328  if (l.contains(curAttr))
329  comboAttr_.add(curAttr);
330  }else {
331  Iterator<String> it0 = l.iterator();
332  while (it0.hasNext())
333  comboAttr_.add(it0.next());
334  }
335  }
336  comboAttr_.setEnabled(true);
337 
338  setButton_.setEnabled(comboAttr_.getItemCount() > 0);
339 
340 
341  if(comboAttr_.getItemCount()>0)
342  comboAttr_.select(0);
343  }
344  });
345  Group group3 = new Group(line3, SWT.NONE);
346  group3.setText(ATTRIBUTE);
347  group3.setLayout(new FillLayout());
348  comboAttr_ = new Combo(group3,SWT.READ_ONLY);
349  removeButton_ = new Button(line3,SWT.PUSH);
350  removeButton_.setText(MessageBundle.get("dialog.graph.series.remove")); //$NON-NLS-1$
351  removeButton_.addSelectionListener(new SelectionListener(){
352  public void widgetDefaultSelected(SelectionEvent e) {
353  }
354 
355  public void widgetSelected(SelectionEvent e) {
356  int ind = tableviewer_.getTable().getSelectionIndex();
357  if (ind < 0)
358  return;
359 
360  tableModel_.removeRow(ind);
361  tableviewer_.refresh();
362  int cnt = tableModel_.getRowCount();
363  if (cnt < 1) {
364  _resetSelection();
365  return;
366  }
367  if (ind >= cnt) {
368  ind -= 1;
369  }
370  tableviewer_.getTable().select(ind);
371  }
372  });
373  removeButton_.setEnabled(true);
374  setButton_ = new Button(line3,SWT.PUSH);
375  setButton_.setText(MessageBundle.get("dialog.graph.series.set")); //$NON-NLS-1$
376  setButton_.addSelectionListener(new SelectionListener(){
377 
378  public void widgetDefaultSelected(SelectionEvent e) {
379  }
380 
381  public void widgetSelected(SelectionEvent e) {
382  int length = 1;
383  String combo1 = (String)comboType_.getItem(comboType_.getSelectionIndex());
384  if (combo1.equals("ForceSensor") || //$NON-NLS-1$
385  combo1.equals("AccelerationSensor") || //$NON-NLS-1$
386  combo1.equals("Gyro")) //$NON-NLS-1$
387  length = 3;
388  String model = comboModel_.getItem(comboModel_.getSelectionIndex());
389  String link = comboLink_.getItem(comboLink_.getSelectionIndex());
390  String attr = comboAttr_.getItem(comboAttr_.getSelectionIndex());
391  if(combo1.equals("Joint") && (attr.equals("translation") || attr.equals("attitude")))
392  length = 3;
393  for (int i=0; i<length; i++) {
394  String legend = model + "." + link + "." + attr + (length > 1 ? "." + i : ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
395  if(!tableModel_.contains(legend)){
396  DataItemInfo newDataItemInfo = new DataItemInfo(new DataItem(model,link,attr,
397  length > 1 ? i : -1,
398  comboType_.getItem(comboType_.getSelectionIndex())),
399  currentGraph_.getTrendGraph().getGraphColor(graphIndex),
400  legend);
401  tableModel_.addRow(newDataItemInfo, legend);
402  tableviewer_.refresh();
403  graphIndex++;
404  }
405  }
406  removeButton_.setEnabled(true);
407  comboLink_.notifyListeners(SWT.Selection, null);
408  }
409  });
410  _resetSelection();
411  return composite;
412  }
413 
414  protected void buttonPressed(int buttonId) {
415  if (buttonId == IDialogConstants.OK_ID) {
416  ArrayList<DataItemInfo> newDataItemInfoList = new ArrayList<DataItemInfo>();
417  for(int i=0; i<tableModel_.getRowCount(); i++){
418  String fullName = tableModel_.getString(i);
419  Iterator<DataItemInfo> it = dataItemInfoList_.iterator();
420  boolean contain = false;
421  while(it.hasNext()){
422  DataItemInfo info = it.next();
423  if(fullName.equals(info.dataItem.toString())){
424  info.color = (RGB)tableModel_.getValueAt(i, 3);
425  info.legend = (String)tableModel_.getValueAt(i, 4);
426  newDataItemInfoList.add(info);
427  dataItemInfoList_.remove(info);
428  contain = true;
429  break;
430  }
431  }
432  if(!contain){
433  addedList_.add(tableModel_.getItem(i));
434  }
435  }
436  Iterator<DataItemInfo> it = dataItemInfoList_.iterator();
437  while(it.hasNext()){
438  removedList_.add(it.next());
439  }
440  dataItemInfoArray_ =
441  newDataItemInfoList.toArray(new DataItemInfo[0]);
442  removedArray_ = removedList_.toArray(new DataItemInfo[0]);
443  removeAllRows();
444  addedArray_ = addedList_.toArray(new DataItemInfo[0]);
445  updated_ = true;
446  }else if(buttonId == IDialogConstants.CANCEL_ID){
447  removeAllRows();
448  }
449  setReturnCode(buttonId);
450  close();
451  super.buttonPressed(buttonId);
452  }
453 
454  private void _resetSelection() {
455  graphIndex = 0;
456 
457 
458  comboModel_.removeAll();
459  Iterator<GrxModelItem> it = currentModels_.iterator();
460  while (it.hasNext()) {
461  GrxModelItem model = it.next();
462  if (model.isRobot())
463  comboModel_.add(model.getName());
464  }
465  comboType_.removeAll();
466  comboLink_.removeAll();
467  comboAttr_.removeAll();
468 
469  comboModel_.setEnabled(true);
470  comboType_.setEnabled(false);
471  comboLink_.setEnabled(false);
472  comboAttr_.setEnabled(false);
473  setButton_.setEnabled(false);
474 
475 
476  if(comboModel_.getItemCount()>0){
477  comboModel_.select(0);
478  comboModel_.notifyListeners(SWT.Selection, null);
479  }
480  }
481 
482  public void setCurrentGraph(GraphElement currentGraph) {
483  currentGraph_ = currentGraph;
484  }
485 
486 
492  public int open( ) {
493  removedList_ = new ArrayList<DataItemInfo>();
494  addedList_ = new ArrayList<DataItemInfo>();
495  updated_ = false;
496  return super.open();
497  }
498 
499 
503  public void setDataItemInfoList( DataItemInfo[] dii) {
504  dataItemInfoList_ = new ArrayList<DataItemInfo>();
505  for (int i = 0; i < dii.length; i++) {
506  dataItemInfoList_.add(dii[i]);
507  tableModel_.addRow(dii[i],dii[i].dataItem.toString());
508  }
509  }
510 
515  return dataItemInfoArray_;
516  }
517 
522  return removedArray_;
523  }
525  return addedArray_;
526  }
530  public boolean isUpdated() {
531  return updated_;
532  }
533 
537  private void removeAllRows() {
538  int cnt = tableModel_.getRowCount();
539  for (int i = 0; i < cnt; i++) {
540  tableModel_.removeRow(0);
541  }
542  }
543 
544  private class MyTable {
545  private ArrayList<String> nameList = new ArrayList<String>();
546  private ArrayList<DataItemInfo> itemList = new ArrayList<DataItemInfo>();
547 
548  public void addRow(DataItemInfo item, String name){
549  itemList.add(item);
550  nameList.add(name);
551  }
552 
553  public void removeRow(int i){
554  itemList.remove(i);
555  nameList.remove(i);
556  }
557 
558  public DataItemInfo getItem(int i){
559  return itemList.get(i);
560  }
561 
562  public int getRowCount(){
563  return itemList.size();
564  }
565 
566  public String getString(int i){
567  return nameList.get(i);
568  }
569 
570  public ArrayList getList(){
571  return itemList;
572  }
573 
574  public boolean contains(String name){
575  return nameList.contains(name);
576  }
577 
578  public Object getValueAt(int i, int j){
579  DataItemInfo dii = itemList.get(i);
580  DataItem di = dii.dataItem;
581  switch (j) {
582  case 0:
583  if (di.object == null) {
584  return di.node;
585  }else{
586  return di.object + "." + di.node; //$NON-NLS-1$
587  }
588  case 1:
589  return di.attribute;
590  case 2:
591  return new Integer(di.index);
592  case 3:
593  return dii.color;
594  case 4:
595  return dii.legend;
596  default:
597  break;
598  }
599  return null;
600  }
601  }
602 
603  public void setModelList(List<GrxModelItem> list){
604  currentModels_ = list;
605  }
606 
607  public class MyLabelProvider extends LabelProvider
608  implements ITableLabelProvider, ITableColorProvider {
609 
610  public Image getColumnImage(Object element, int columnIndex) {
611  return null;
612  }
613 
614  public String getColumnText(Object element, int columnIndex) {
615  DataItemInfo item = (DataItemInfo) element;
616  String result = ""; //$NON-NLS-1$
617  DataItem di = item.dataItem;
618  switch (columnIndex) {
619  case 0:
620  if (di.object == null) {
621  result = di.node;
622  }else{
623  result = di.object + "." + di.node; //$NON-NLS-1$
624  }
625  break;
626  case 1:
627  result = di.attribute;
628  break;
629  case 2:
630  if(di.index < 0)
631  result = ""; //$NON-NLS-1$
632  else
633  result = (new Integer(di.index)).toString();
634  break;
635  case 3:
636  result = ""; //$NON-NLS-1$
637  break;
638  case 4:
639  result = item.legend;
640  break;
641  default:
642  break;
643  }
644  return result;
645  }
646 
647  public Color getBackground(Object element, int columnIndex) {
648  DataItemInfo item = (DataItemInfo) element;
649  if(columnIndex == 3)
650  return Activator.getDefault().getColor(item.color);
651  else
652  return null;
653  }
654 
655  public Color getForeground(Object element, int columnIndex) {
656  return null;
657  }
658  }
659 
660  public class MyCellModifier implements ICellModifier {
661  private TableViewer viewer_;
662 
663  public MyCellModifier(TableViewer viewer) {
664  this.viewer_ = viewer;
665  }
666 
667  public boolean canModify(Object element, String property) {
668  if(property == "color" || property == "legend") //$NON-NLS-1$ //$NON-NLS-2$
669  return true;
670  else
671  return false;
672  }
673 
674  public Object getValue(Object element, String property) {
675  DataItemInfo item = (DataItemInfo) element;
676  if(property == "color") //$NON-NLS-1$
677  return item.color;
678  else if(property == "legend") //$NON-NLS-1$
679  return item.legend;
680  return null;
681  }
682 
683  public void modify(Object element, String property, Object value) {
684  if (element instanceof Item) {
685  element = ((Item) element).getData();
686  }
687  DataItemInfo item = (DataItemInfo) element;
688  if(property == "color"){ //$NON-NLS-1$
689  item.color =(RGB)value;
690  }else if(property == "legend") //$NON-NLS-1$
691  item.legend = (String)value;
692 
693  viewer_.update(element, null);
694  }
695  }
696 }
static final String get(String key)
bool toString(IOP::IOR &ior, std::string &iorstr)
png_infop png_charp png_int_32 png_int_32 int * type
Definition: png.h:2332
#define null
our own NULL pointer
Definition: IceTypes.h:57
String getColumnText(Object element, int columnIndex)
void modify(Object element, String property, Object value)
SeriesDialog(GraphElement initialGraph, Shell shell)
GrxLinkItem getLink(String name)
get link from name
png_infop png_charpp name
Definition: png.h:2382
png_voidp int value
Definition: png.h:2113
item corresponds to a robot model
png_bytep png_bytep png_size_t length
Definition: png.h:1541
png_uint_32 i
Definition: png.h:2735
Color getBackground(Object element, int columnIndex)
Image getColumnImage(Object element, int columnIndex)
Object getValue(Object element, String property)
Color getForeground(Object element, int columnIndex)
t
void addRow(DataItemInfo item, String name)
prop
boolean canModify(Object element, String property)
backing_store_ptr info
Definition: jmemsys.h:181
void setModelList(List< GrxModelItem > list)
org
void setCurrentGraph(GraphElement currentGraph)


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Sat May 8 2021 02:42:41