GrxServerManagerView.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 
11 package com.generalrobotix.ui.view;
12 
13 import java.lang.reflect.InvocationTargetException;
14 import java.util.Vector;
15 
16 import org.eclipse.jface.dialogs.MessageDialog;
17 import org.eclipse.swt.SWT;
18 import org.eclipse.swt.widgets.Button;
19 import org.eclipse.swt.widgets.Composite;
20 import org.eclipse.swt.widgets.Label;
21 import org.eclipse.swt.widgets.TabItem;
22 import org.eclipse.swt.widgets.Text;
23 import org.eclipse.core.runtime.IProgressMonitor;
24 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
25 import org.eclipse.jface.operation.IRunnableWithProgress;
26 
40 
41 import org.eclipse.swt.events.SelectionEvent;
42 import org.eclipse.swt.events.SelectionListener;
43 import org.eclipse.swt.events.ModifyEvent;
44 import org.eclipse.swt.events.ModifyListener;
45 import org.eclipse.swt.graphics.Point;
46 import org.eclipse.swt.layout.GridData;
47 import org.eclipse.swt.layout.GridLayout;
48 import org.eclipse.swt.widgets.*;
49 
50 import org.eclipse.swt.events.DisposeEvent;
51 import org.eclipse.swt.events.DisposeListener;
52 import org.eclipse.osgi.util.NLS;
53 
54 @SuppressWarnings("serial") //$NON-NLS-1$
55 public class GrxServerManagerView extends GrxBaseView
56  implements DisposeListener {
57  public static final String TITLE = "Server Manager"; //$NON-NLS-1$
58  static private final int HORIZONTAL_INDENT = 8;
59  static private final int COLLUMN_NUM = 4;
60  static private final int NAME_SERVER_GROUP_COLLUMN_NUM = 3;
61 
62  private GrxServerManager serverManager_ = null;
63  private GrxSimulationItem simItem_ = null;
64  private Vector<TabItem> vecTabItem_ = new Vector<TabItem>();
65  private TabFolder folder_;
66  private Text textNsPort_ = null;
67  private Text textNsHost_ = null;
68  private Button updateNameServerBtn_ = null;
69 
70  public GrxServerManagerView(String name, GrxPluginManager manager_,
71  GrxBaseViewPart vp, Composite parent) {
72  super(name, manager_, vp, parent);
73 
74  serverManager_ = (GrxServerManager)manager_.getItem(GrxServerManager.class, null);
75  if(serverManager_ != null){
76  InitItems();
77  serverManager_.addObserver(this);
78  }
79  setUp();
80  manager_.registerItemChangeListener(this, GrxServerManager.class);
81  manager_.registerItemChangeListener(this, GrxSimulationItem.class);
82  //setScrollMinSize(SWT.DEFAULT,SWT.DEFAULT);
83  }
84 
85  public void setUp(){
86  if(simItem_ != null)
87  simItem_.deleteObserver(this);
88  simItem_ = manager_.<GrxSimulationItem>getSelectedItem(GrxSimulationItem.class, null);
89  if(simItem_!=null){
90  simItem_.addObserver(this);
91  }
92  }
93 
94  // GUIの配置、イベントの設定
95  private void InitItems(){
96  Composite top = new Composite(composite_,SWT.NONE);
97  top.setLayoutData(new GridData(GridData.FILL_BOTH));
98  GridLayout localGridLayout = new GridLayout( COLLUMN_NUM, false);
99  localGridLayout.marginWidth = 0;
100  localGridLayout.horizontalSpacing = 0;
101  top.setLayout( localGridLayout );
102 
103  Button insertBtn = new Button(top , SWT.PUSH);
104  insertBtn.setText(MessageBundle.get("GrxServerManagerView.button.insert")); //$NON-NLS-1$
105  GridData insertBtnGridData = new GridData();
106  insertBtnGridData.horizontalIndent = HORIZONTAL_INDENT;
107  insertBtn.setLayoutData(insertBtnGridData);
108 
109  Button addBtn = new Button(top , SWT.PUSH);
110  addBtn.setText(MessageBundle.get("GrxServerManagerView.button.add")); //$NON-NLS-1$
111  GridData addBtnGridData = new GridData();
112  addBtnGridData.horizontalIndent = HORIZONTAL_INDENT;
113  addBtn.setLayoutData(addBtnGridData);
114 
115  Button delBtn = new Button(top , SWT.PUSH);
116  delBtn.setText(MessageBundle.get("GrxServerManagerView.button.remove")); //$NON-NLS-1$
117  GridData delBtnGridData = new GridData();
118  delBtnGridData.horizontalIndent = HORIZONTAL_INDENT;
119  delBtn.setLayoutData(delBtnGridData);
120 
121  Button defBtn = new Button(top , SWT.PUSH);
122  defBtn.setText(MessageBundle.get("GrxServerManagerView.button.default")); //$NON-NLS-1$
123  GridData defBtnGridData = new GridData();
124  defBtnGridData.horizontalIndent = HORIZONTAL_INDENT;
125  defBtn.setLayoutData(defBtnGridData);
126 
127  folder_ = new TabFolder(top,SWT.FILL);
128 
129  GridData folderGridData = new GridData();
130  folderGridData.horizontalSpan = COLLUMN_NUM;
131  folderGridData.horizontalAlignment = SWT.FILL;
132  folderGridData.grabExcessHorizontalSpace = true;
133  folder_.setLayoutData(folderGridData);
134 
135  insertBtn.addSelectionListener(new SelectionListener(){
136  public void widgetDefaultSelected(SelectionEvent e) {}
137  public void widgetSelected(SelectionEvent e) {
138  insertServerBtn( folder_ );
139  }
140  }
141  );
142  addBtn.addSelectionListener(new SelectionListener(){
143  public void widgetDefaultSelected(SelectionEvent e) {}
144  public void widgetSelected(SelectionEvent e) {
145  addServerBtn( folder_ );
146  }
147  }
148  );
149  delBtn.addSelectionListener(new SelectionListener(){
150  public void widgetDefaultSelected(SelectionEvent e) {}
151 
152  public void widgetSelected(SelectionEvent e) {
153  removeServerBtn( folder_ );
154  }
155  }
156  );
157 
158  defBtn.addSelectionListener(new SelectionListener(){
159  public void widgetDefaultSelected(SelectionEvent e) {}
160 
161  public void widgetSelected(SelectionEvent e) {
162  restoreDefault();
163  }
164  }
165  );
166 
167  GrxServerManagerPanel panel = null;
168  Vector<ProcessInfo> vecServerInfo = serverManager_.getServerInfo();
169 
170  for (int i = 0; i < vecServerInfo.size() ; ++i ){
171  vecTabItem_.add(new TabItem(folder_,SWT.NONE)) ;
172  vecTabItem_.elementAt(i).setText(vecServerInfo.elementAt(i).id);
173 
174  folder_.setSelection(i);
175  panel = new GrxServerManagerPanel(serverManager_, folder_ , SWT.NONE , i, manager_ );
176  vecTabItem_.elementAt(i).setControl(panel);
177  }
178  folder_.addDisposeListener(this);
179  folder_.setSelection(0);
180 
181  // Name Server Goup setting
182  Group localGroup = new Group(top, SWT.FILL);
183  localGroup.setText("Name Service");
184  GridData groupGridData = new GridData();
185  groupGridData.heightHint = 60;
186  groupGridData.horizontalAlignment = SWT.FILL;
187  groupGridData.horizontalSpan = NAME_SERVER_GROUP_COLLUMN_NUM;
188 
189  localGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL |
190  GridData.GRAB_HORIZONTAL | GridData.VERTICAL_ALIGN_CENTER));
191 
192  GridLayout groupGridLayout = new GridLayout(NAME_SERVER_GROUP_COLLUMN_NUM, false);
193  groupGridLayout.marginWidth = 2;
194  groupGridLayout.marginHeight = 2;
195 
196  localGroup.setLayout(groupGridLayout);
197  localGroup.setLayoutData(groupGridData);
198 
199  Label localHostLabel = new Label(localGroup, SWT.RIGHT);
200  GridData hostLabelGridData = new GridData();
201  hostLabelGridData.widthHint = 100;
202  localHostLabel.setText(MessageBundle.get("GrxORBMonitor.label.host"));
203  localHostLabel.setLayoutData(hostLabelGridData);
204 
205  textNsHost_ = new Text(localGroup, SWT.SINGLE | SWT.BORDER);
206  GridData textNsHostGridData = new GridData();
207  textNsHostGridData.widthHint = 100;
208  textNsHost_.setText( String.valueOf( serverManager_.getNewHost()) );
209  textNsHost_.setLayoutData(textNsHostGridData);
210  textNsHost_.addModifyListener( new ModifyListener(){
211  public void modifyText(ModifyEvent e){
212  updateNameServerBtn_.setEnabled(!equalsHostPort());
213  }
214  }
215  );
216  updateNameServerBtn_ = new Button(localGroup , SWT.PUSH);
217  GridData btnGridData = new GridData();
218  btnGridData.widthHint = 64;
219  btnGridData.verticalSpan = 2;
220 
221  updateNameServerBtn_.setText(MessageBundle.get("GrxServerManagerView.NameServer.button"));
222 
223  updateNameServerBtn_.addSelectionListener(new SelectionListener() {
224  public void widgetDefaultSelected(SelectionEvent e) {}
225 
226  public void widgetSelected(SelectionEvent e) {
227  updateNameServerBtn();
228  }
229  });
230 
231  updateNameServerBtn_.setEnabled(false);
232  updateNameServerBtn_.setLayoutData(btnGridData);
233 
234  Label localPortLabel = new Label(localGroup, SWT.RIGHT);
235  GridData portLabelGridData = new GridData();
236  portLabelGridData.widthHint = 100;
237  localPortLabel.setText(MessageBundle.get("GrxORBMonitor.label.port"));
238  localPortLabel.setLayoutData(portLabelGridData);
239 
240  textNsPort_ = new Text(localGroup, SWT.SINGLE | SWT.BORDER);
241  GridData textNsPortGridData = new GridData();
242  textNsPortGridData.widthHint = 100;
243  textNsPort_.setText( String.valueOf( serverManager_.getNewPort()) );
244  textNsPort_.setLayoutData(textNsPortGridData);
245 
246  textNsPort_.addModifyListener( new ModifyListener(){
247  public void modifyText(ModifyEvent e){
248  updateNameServerBtn_.setEnabled(!equalsHostPort());
249  }
250  }
251  );
252  }
253 
254  private void updateItems(){
255  textNsHost_.setText( String.valueOf( serverManager_.getNewHost()) );
256  textNsPort_.setText( String.valueOf( serverManager_.getNewPort()) );
257  for (int i = 0; i < vecTabItem_.size() ; ++i ){
258  vecTabItem_.elementAt(i).getControl().dispose();
259  vecTabItem_.elementAt(i).dispose();
260  }
261  vecTabItem_.clear();
262  Vector<ProcessInfo> vecServerInfo = serverManager_.getServerInfo();
263  for (int i = 0; i < vecServerInfo.size() ; ++i ){
264  vecTabItem_.add(new TabItem(folder_,SWT.NONE)) ;
265  vecTabItem_.elementAt(i).setText(vecServerInfo.elementAt(i).id);
266  GrxServerManagerPanel panel = new GrxServerManagerPanel(serverManager_, folder_ , SWT.NONE , i, manager_ );
267  vecTabItem_.elementAt(i).setControl(panel);
268  }
269  folder_.setSelection(0);
270  }
271 
272  private void insertServerBtn(final TabFolder folder){
273  Display display = Display.getCurrent();
274  final Shell shell = new Shell(display , SWT.TITLE | SWT.OK);
275  shell.setLayout(new GridLayout(2,false));
276  shell.setText(MessageBundle.get("GrxServerManagerView.text.newServer")); //$NON-NLS-1$
277  Label idLabel = new Label( shell , SWT.RIGHT);
278  idLabel.setText("id:"); //$NON-NLS-1$
279  final Text id = new Text( shell , SWT.BORDER);
280  GridData idGridData = new GridData();
281  idGridData.horizontalAlignment = SWT.FILL;
282  idGridData.grabExcessHorizontalSpace = true;
283  id.setLayoutData(idGridData);
284  Button okBtn = new Button( shell , SWT.PUSH);
285  okBtn.setText(MessageBundle.get("GrxServerManagerView.button.ok")); //$NON-NLS-1$
286  Point point = display.getCursorLocation();
287  shell.setLocation(point.x , point.y );
288  shell.setSize(200, 100);
289  shell.open();
290 
291  okBtn.addSelectionListener(new SelectionListener(){
292  public void widgetDefaultSelected(SelectionEvent e) {}
293 
294  public void widgetSelected(SelectionEvent e) {
295  if( checkID(id.getText()) ){
296  int index = folder.getSelectionIndex();
297  if(index<0) index=0;
298  ProcessInfo localInfo = new ProcessInfo();
299  localInfo.id = id.getText();
300  localInfo.com.clear();
301  localInfo.com.add(""); //$NON-NLS-1$
302  localInfo.args = ""; //$NON-NLS-1$
303  localInfo.autoStart = false;
304  localInfo.useORB = false;
305  localInfo.dir=serverManager_.serverInfoDefaultDir_;
306  localInfo.waitCount=serverManager_.serverInfoDefaultWaitCount_;
307  Vector<ProcessInfo> vecServerInfo = serverManager_.getServerInfo();
308  vecServerInfo.add(index,localInfo);
309  vecTabItem_.add(index , new TabItem(folder,SWT.NONE , index)) ;
310  vecTabItem_.elementAt(index).setText(vecServerInfo.elementAt(index).id);
311  folder.setSelection(index);
312  GrxServerManagerPanel panel = new GrxServerManagerPanel(serverManager_,folder , SWT.NONE , index, manager_ );
313  vecTabItem_.elementAt(index).setControl(panel);
314  }
315  shell.close();
316  }
317  }
318  );
319 
320  }
321 
322  private void addServerBtn(final TabFolder folder){
323  Display display = Display.getCurrent();
324  final Shell shell = new Shell(display , SWT.TITLE | SWT.OK);
325  shell.setLayout(new GridLayout(2,false));
326  shell.setText(MessageBundle.get("GrxServerManagerView.text.addServer")); //$NON-NLS-1$
327  Label idLabel = new Label( shell , SWT.RIGHT);
328  idLabel.setText("id:"); //$NON-NLS-1$
329  final Text id = new Text( shell , SWT.BORDER);
330  GridData idGridData = new GridData();
331  idGridData.horizontalAlignment = SWT.FILL;
332  idGridData.grabExcessHorizontalSpace = true;
333  id.setLayoutData(idGridData);
334  Button okBtn = new Button( shell , SWT.PUSH);
335  okBtn.setText(MessageBundle.get("GrxServerManagerView.button.ok")); //$NON-NLS-1$
336  Point point = display.getCursorLocation();
337  shell.setLocation(point.x , point.y );
338  shell.setSize(200, 100);
339  shell.open();
340  okBtn.addSelectionListener(new SelectionListener(){
341  public void widgetDefaultSelected(SelectionEvent e) {}
342 
343  public void widgetSelected(SelectionEvent e) {
344  if( checkID(id.getText()) ){
345  int index = folder.getSelectionIndex() + 1;
346  ProcessInfo localInfo = new ProcessInfo();
347  localInfo.id = id.getText();
348  localInfo.com.clear();
349  localInfo.com.add(""); //$NON-NLS-1$
350  localInfo.args = ""; //$NON-NLS-1$
351  localInfo.autoStart = false;
352  localInfo.useORB = false;
353  localInfo.dir=serverManager_.serverInfoDefaultDir_;
354  localInfo.waitCount=serverManager_.serverInfoDefaultWaitCount_;
355  Vector<ProcessInfo> vecServerInfo = serverManager_.getServerInfo();
356  vecServerInfo.add(index,localInfo);
357  vecTabItem_.add(index , new TabItem(folder,SWT.NONE , index)) ;
358  vecTabItem_.elementAt(index).setText(vecServerInfo.elementAt(index).id);
359  folder.setSelection(index);
360  GrxServerManagerPanel panel = new GrxServerManagerPanel(serverManager_, folder , SWT.NONE , index, manager_ );
361  vecTabItem_.elementAt(index).setControl(panel);
362  }
363  shell.close();
364  }
365  }
366  );
367 
368  }
369 
370  private void removeServerBtn(TabFolder folder){
371  int index = folder.getSelectionIndex();
372  Vector<ProcessInfo> vecServerInfo = serverManager_.getServerInfo();
373 
374  String mes = MessageBundle.get("GrxServerManagerView.dialog.message.remove"); //$NON-NLS-1$
375  mes = NLS.bind(mes, new String[]{vecTabItem_.elementAt(index).getText()});
376 
377  // 確認ダイアログ表示後 当該 タブを削除
378  if ( MessageDialog.openConfirm(
379  composite_.getShell(),
380  MessageBundle.get("GrxServerManagerView.dialog.title.remove"), //$NON-NLS-1$
381  mes))
382  {
383  vecTabItem_.elementAt(index).getControl().dispose();
384  folder.getItem(index).dispose();
385  vecTabItem_.remove(index);
386  vecServerInfo.remove(index);
387  }
388  }
389 
390  private boolean checkID(String id){
391  if(id.isEmpty()){
392  MessageDialog.openWarning(
393  composite_.getShell(),
394  MessageBundle.get("GrxServerManagerView.dialog.title.warning") , //$NON-NLS-1$
395  MessageBundle.get("GrxServerManagerView.dialog.message.emptyID") ); //$NON-NLS-1$
396  return false;
397  }
398  boolean ret = true;
399  String localID = id.toUpperCase();
400  for (TabItem i:vecTabItem_){
401  String srcStr = i.getText().toUpperCase();
402  if( srcStr.equals(localID) ){
403  ret = false;
404  MessageDialog.openWarning(
405  composite_.getShell(),
406  MessageBundle.get("GrxServerManagerView.dialog.title.warning") , //$NON-NLS-1$
407  MessageBundle.get("GrxServerManagerView.dialog.message.sameID") ); //$NON-NLS-1$
408  break;
409  }
410  }
411  return ret;
412  }
413 
414  private boolean equalsHostPort(){
415  boolean ret = true;
416  String port = textNsPort_.getText();
417  String host = textNsHost_.getText();
418 
419  if( !host.equals(serverManager_.getNewHost()) ){
420  ret= false;
421  }
422 
423  try{
424  if( serverManager_.getNewPort() != Integer.valueOf(port) ){
425  ret = false;
426  }
427  }catch (NumberFormatException ex){
428  ret = false;
429  }catch (Exception ex){
430  ex.printStackTrace();
431  ret = false;
432  }
433 
434  return ret;
435  }
436 
437  //タブウィンドウが閉じるときGUIによって生じた変更を反映する。
438  private void storevecServerInfo(){
439  for (int i = 0; i < vecTabItem_.size(); ++i){
440  GrxServerManagerPanel localPanel = (GrxServerManagerPanel) vecTabItem_.elementAt(i).getControl();
441  localPanel.updateProcessInfo();
442  }
443  }
444 
445  private void updateNameServerBtn(){
446  StringBuffer refHost = new StringBuffer("");
447  StringBuffer refPort = new StringBuffer("");
448 
449  boolean ret = MessageDialog.openQuestion(composite_.getShell(),
450  MessageBundle.get("GrxServerManagerView.dialog.infomation.tittle.updateNameServer"),
451  MessageBundle.get("GrxServerManagerView.dialog.infomation.message.updateNameServer"));
452 
453  if(ret){
454  String message = serverManager_.setNewHostPort(textNsHost_.getText(), textNsPort_.getText(), refHost, refPort );
455  // TODO
456  if(message.isEmpty()){
457  updateNameServerBtn_.setEnabled(false);
458  restartServers();
459  }else{
460  MessageDialog.openError(composite_.getShell(),
461  MessageBundle.get("GrxServerManagerView.dialog.error.tittle.updateNameServer"),
462  message);
463  if( refHost.length() != 0){
464  textNsHost_.setText(refHost.toString());
465  }
466  if( refPort.length() != 0 ){
467  textNsPort_.setText(refPort.toString());
468  }
469  }
470  }
471  }
472 
473  private void restartServers(){
474  try {
475  IRunnableWithProgress iProgress = new IRunnableWithProgress() {
476  public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
477  monitor.beginTask(MessageBundle.get("GrxServerManagerView.dialog.title.progress"),
478  2 + ( serverManager_.getServerInfo().size() + 1) * 2); //$NON-NLS-1$
479  restartServers(monitor);
480  monitor.done();
481  }
482  };
483  new ProgressMonitorDialog(GrxUIPerspectiveFactory.getCurrentShell()).run(false, false, iProgress);
484  } catch (InvocationTargetException e) {
485  e.printStackTrace();
486  } catch (InterruptedException e) {
487  }
488 
489 
490  }
491 
492  private void restartServers(IProgressMonitor monitor) throws InterruptedException{
493  Grx3DView dview = (Grx3DView)manager_.getView( Grx3DView.class, false );
494  if(dview != null){
495  dview.unregisterCORBA();
496  }
497  if(simItem_ != null){
498  simItem_.unregisterCORBA();
499  }
500  monitor.worked(1);
501  serverManager_.restart(monitor);
502  monitor.worked(1);
503  if(simItem_ != null){
504  simItem_.registerCORBA();
505  }
506  if(dview != null){
507  dview.registerCORBA();
508  }
509  }
510 
511  private void restoreDefault(){
512  serverManager_.restoreDefault();
513  updateItems();
514  }
515 
516  public void registerItemChange(GrxBaseItem item, int event){
517  if(item instanceof GrxServerManager){
518  GrxServerManager serverManager = (GrxServerManager) item;
519  switch(event){
521  if(serverManager_ == null){
522  serverManager_ = serverManager;
523  updateItems();
524  serverManager_.addObserver(this);
525  }
526  break;
527  default:
528  break;
529  }
530  }else if(item instanceof GrxSimulationItem){
531  GrxSimulationItem simItem = (GrxSimulationItem) item;
532  switch(event){
534  if(simItem_!=simItem){
535  simItem_ = simItem;
536  simItem_.addObserver(this);
537  }
538  break;
541  if(simItem_==simItem){
542  simItem_.deleteObserver(this);
543  simItem_ = null;
544  }
545  break;
546  default:
547  break;
548  }
549  }
550  }
551 
552  public void widgetDisposed(DisposeEvent e)
553  {
554  storevecServerInfo();
555  }
556 
557  public void update(GrxBasePlugin plugin, Object... arg) {
558  if(serverManager_==plugin){
559  if((String)arg[0]=="ProcessEnd"){
560  for (TabItem i: vecTabItem_){
561  if(i.getText().equals((String)arg[1])){
562  ((GrxServerManagerPanel)i.getControl()).setStartText();
563  }
564  }
565  }
566  }else if(simItem_==plugin){
567  if((String)arg[0]=="StartSimulation"){
568  setEditableHostPortText(false);
569  }else if((String)arg[0]=="StopSimulation"){
570  setEditableHostPortText(true);
571  }
572  }
573  }
574 
575  public void shutdown() {
576  manager_.removeItemChangeListener(this, GrxServerManager.class);
577  if(serverManager_!=null)
578  serverManager_.deleteObserver(this);
579  serverManager_.SaveServerInfo();
580  if(simItem_!=null)
581  simItem_.deleteObserver(this);
582  manager_.removeItemChangeListener(this, GrxSimulationItem.class);
583  }
584 
585  public void setEditableHostPortText(boolean bEnable){
586  textNsHost_.setEditable(bEnable);
587  textNsPort_.setEditable(bEnable);
588  }
589 }
static final String get(String key)
#define null
our own NULL pointer
Definition: IceTypes.h:57
GrxBaseItem getItem(Class<?extends GrxBaseItem > cls, String name)
png_infop png_charpp name
Definition: png.h:2382
RTC::ReturnCode_t ret(RTC::Local::ReturnCode_t r)
string message
png_uint_32 i
Definition: png.h:2735
list index
def run(tree, args)
void update(GrxBasePlugin plugin, Object...arg)
String setNewHostPort(String host, String port, StringBuffer refHost, StringBuffer refPort)
プラグイン管理クラス GrxUIの核になるクラス。プラグインのロード等の、初期化を実行する。 プラグインとそ...
Vector< ProcessInfo > getServerInfo()
vecServerInfoの取得
def getText(self, nodes=None)
org
char * arg
Definition: cdjpeg.h:136
void registerItemChange(GrxBaseItem item, int event)
GrxServerManagerView(String name, GrxPluginManager manager_, GrxBaseViewPart vp, Composite parent)
void registerItemChangeListener(GrxItemChangeListener view, Class<?extends GrxBaseItem > cls)


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:38