GrxBasePlugin.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  * GrxBasePlugin.java
12  *
13  * Copyright (C) 2007 GeneralRobotix, Inc.
14  * All Rights Reserved
15  *
16  * @author Yuichiro Kawasumi (General Robotix, Inc.)
17  */
18 package com.generalrobotix.ui;
19 
20 import java.io.File;
21 import java.lang.reflect.Field;
22 import java.util.ArrayList;
23 import java.util.Enumeration;
24 import java.util.ListIterator;
25 import java.util.Vector;
26 
27 import org.eclipse.jface.action.Action;
28 import org.eclipse.jface.action.MenuManager;
29 import org.eclipse.jface.dialogs.InputDialog;
30 import org.eclipse.jface.resource.ImageDescriptor;
31 import org.eclipse.jface.resource.ImageRegistry;
32 import org.eclipse.swt.graphics.Image;
33 import org.eclipse.swt.widgets.Display;
34 import org.w3c.dom.Document;
35 import org.w3c.dom.Element;
36 import org.w3c.dom.Node;
37 import org.w3c.dom.NodeList;
38 
45 
46 @SuppressWarnings("serial") //$NON-NLS-1$
50 public class GrxBasePlugin extends GrxConfigBundle {
51  private String name_;
52  private String oldName_;
54  private String url_;
55  private boolean selected_ = true;
56  private boolean isExclusive_= false;
57 
58  private ImageRegistry ireg_;
59  private String iconName_;
60 
61  private Vector<Action> menu_ = new Vector<Action>();
62  private Vector<MenuManager> subMenu_ = new Vector<MenuManager>();
63  private String[] menuPath_;
64 
65  protected Document doc_;
66  protected Element element_;
67 
68  protected final static String ITEM_TAG = "item"; //$NON-NLS-1$
69  protected final static String VIEW_TAG = "view"; //$NON-NLS-1$
70  protected final static String PROPERTY_TAG = "property"; //$NON-NLS-1$
71  protected final static String INDENT4 = " "; //$NON-NLS-1$
72 
73  protected static final String[] booleanComboItem_ = new String[] {"true", "false" };
74 
75  private ArrayList<GrxObserver> observers_ = new ArrayList<GrxObserver>();
76 
82  protected GrxBasePlugin(String name, GrxPluginManager manager) {
83  manager_ = manager;
84  setName(name);
85  ireg_ = new ImageRegistry();
86  // menu item : restore Properties
87  Action a = new Action(){
88  public String getText(){
89  return MessageBundle.get("GrxBasePlugin.menu.restoreProperties"); //$NON-NLS-1$
90  }
91  public void run(){
92  restoreProperties();
93  }
94  };
95  setMenuItem(a);
96 
97  // menu item : rename
98  Action item = new Action(){
99  public String getText(){
100  return MessageBundle.get("GrxBasePlugin.menu.rename"); //$NON-NLS-1$
101  }
102  public void run(){
103  InputDialog dialog = new InputDialog( null, getText(),
104  MessageBundle.get("GrxBasePlugin.dialog.message.input"), getName(),null); //$NON-NLS-1$
105  if ( dialog.open() == InputDialog.OK && dialog.getValue() != null)
106  rename( dialog.getValue() );
107  }
108  };
109  setMenuItem(item);
110  }
111 
115  public void restoreProperties() {
116  if (element_ == null) {
117  return;
118  }
119  clear();
120  if(url_!=null)
121  setProperty("url", url_);
122  if(name_!=null)
123  setProperty("name", name_);
124  NodeList props = element_.getElementsByTagName(PROPERTY_TAG);
125  for (int j = 0; j < props.getLength(); j++) {
126  Element propEl = (Element) props.item(j);
127  String key = propEl.getAttribute("name"); //$NON-NLS-1$
128  String val = propEl.getAttribute("value"); //$NON-NLS-1$
129  if (!propertyChanged(key, val)){
130  setProperty(key, val);
131  }
132  }
133  }
134 
139  public Element storeProperties() {
140  if (doc_ == null)
141  return null;
142 
143  if (element_ != null) {
144  Node n = element_.getParentNode();
145  if (n != null)
146  n.removeChild(element_);
147  }
148 
149  String tag = (this instanceof GrxBaseItem) ? ITEM_TAG:VIEW_TAG;
150  element_ = doc_.createElement(tag);
151 
152  element_.setAttribute("class",getClass().getName()); //$NON-NLS-1$
153  element_.setAttribute("name", getName()); //$NON-NLS-1$
154  element_.setAttribute("select", String.valueOf(isSelected())); //$NON-NLS-1$
155  if (url_ != null)
156  element_.setAttribute("url", GrxXmlUtil.replaceEnvVal(new File(url_))); //$NON-NLS-1$
157  element_.appendChild(doc_.createTextNode("\n")); //$NON-NLS-1$
158 
159  Enumeration<?> keys = propertyNames();
160  while (keys.hasMoreElements()) {
161  String key = (String)keys.nextElement();
162  String val = getProperty(key);
163  if (key == null || val == null || key.equals("name") || key.equals("url"))
164  continue;
165 
166  if(key.equals("setupDirectory"))
168  if(key.equals("setupCommand")){
169  String s = Activator.getDefault().getPreferenceStore().getString(PreferenceConstants.BIN_SFX);
170  val = val.replace(s, "$(BIN_SFX)");
171  }
172  Element propEl = doc_.createElement(GrxProjectItem.PROPERTY_TAG);
173  propEl.setAttribute("name", key); //$NON-NLS-1$
174  propEl.setAttribute("value", val); //$NON-NLS-1$
175 
176  element_.appendChild(doc_.createTextNode(INDENT4+INDENT4+INDENT4));
177  element_.appendChild(propEl);
178  element_.appendChild(doc_.createTextNode("\n")); //$NON-NLS-1$
179  }
180  element_.appendChild(doc_.createTextNode(INDENT4+INDENT4));
181 
182  return element_;
183  }
184 
189  public void setName(String name) {
190  oldName_ = name_;
191  name_ = name;
192  setProperty("name", name); //$NON-NLS-1$
193  }
194 
199  public final String getName() {
200  return name_;
201  }
202 
207  public final String toString() {
208  return name_;
209  }
210 
211  public String getOldName(){
212  return oldName_;
213  }
214 
219  public void setDocument(Document doc) {
220  doc_ = doc;
221  }
222 
227  public void setElement(Element element) {
228  element_ = element;
229  doc_ = element.getOwnerDocument();
230  }
231 
236  public Element getElement() {
237  return element_;
238  }
239 
244  public void setSelected(boolean b) {
245  selected_ = b;
246  }
247 
252  public boolean isSelected() {
253  return selected_;
254  }
255 
260  public void setExclusive(boolean b) {
261  isExclusive_ = b;
262  }
263 
268  public boolean isExclusive() {
269  return isExclusive_;
270  }
271 
276  protected void setIcon(String iconName) {
277  iconName_ = iconName;
278  if( ireg_.get( iconName_ ) == null )
279  ireg_.put( iconName_, ImageDescriptor.createFromURL( getClass().getResource( "/resources/images/"+iconName_ ) ) ); //$NON-NLS-1$
280  //icon_ = icon;
281  }
282 
287  public Image getIcon() {
288  return ireg_.get( iconName_ );
289  }
290 
295  public void setMenuItem( Action a ) {
296  menu_.add(a);
297  }
298 
303  public void setSubMenu( MenuManager m ) {
304  subMenu_.add(m);
305  }
306 
311  public Vector<Action> getMenu() {
312  return menu_;
313  }
314 
319  public Vector<MenuManager> getSubMenu() {
320  return subMenu_;
321  }
322 
327  protected void setMenuPath(String[] path) {
328  menuPath_ = path;
329  }
330 
336  protected boolean syncExec(Runnable r) {
337  Display display = Display.getDefault();
338  if (display != null && !display.isDisposed()) {
339  display.syncExec(r);
340  return true;
341  } else
342  return false;
343  }
344 
349  public String[] getMenuPath() {
350  return menuPath_;
351  };
352 
357  public boolean equals(Object obj) {
358 
359  return this == obj;
360  }
361 
367  public String getURL(boolean expand) {
368  if (expand)
369  return GrxXmlUtil.expandEnvVal(url_);
370  else
371  return url_;
372  }
373 
378  public void setURL(String url) {
379  url = url.replace('\\','/');
380  setProperty("url", url); //$NON-NLS-1$
381  url_ =url;
382  }
383 
388  public void rename(String newName) {
389  manager_.renamePlugin(this, newName);
390  };
391 
399  public static Object getField(Class<? extends GrxBasePlugin> cls, String field, Object defaultValue) {
400  try {
401  Field f = cls.getField(field);
402  return (Object)f.get(new Object());
403  } catch (Exception e) {
404  //GrxDebugUtil.println(cls.getName() + ": " + field + " not defined");
405  }
406  return defaultValue;
407  }
408 
412  public void shutdown() {
413 
414  }
415 
419  public void unregisterCORBA() {
420 
421  }
422 
426  public boolean registerCORBA() {
427  return true;
428  }
429 
435  GrxBasePlugin ret = (GrxBasePlugin) super.clone();
436 
437 
438  ret.setName(name_);
439  ret.setURL(url_);
440 
441 /*
442  * Deep copy suspension list
443 
444  private ImageRegistry ireg_;
445  private String iconName_;
446 
447  private Vector<Action> menu_ = new Vector<Action>();
448  private String[] menuPath_;
449 
450  private Document doc_;
451  protected Element element_;
452 */
453 
454  return ret;
455  }
456 
463  public boolean propertyChanged(String property, String value) {
464  if (property.equals("name")){ //$NON-NLS-1$
465  rename(value);
466  return true;
467  }
468  return false;
469  }
470 
471 
477  public Object setProperty(String key, String value){
478  //System.out.println("GrxBasePlugin.setProperty("+key+","+value+")");
479  Object o = super.setProperty(key, value);
480  notifyObservers("PropertyChange", key, value); //$NON-NLS-1$
481  return o;
482  }
483 
488  public void setFocused(boolean b){
489  }
490 
491  public void addObserver(GrxObserver v){
492  observers_.add(v);
493  }
494 
495  public void deleteObserver(GrxObserver v){
496  observers_.remove(v);
497  }
498 
499  public ArrayList<GrxObserver> getObserver(){
500  return observers_;
501  }
502 
503  public void notifyObservers(Object... arg) {
504  ListIterator<GrxObserver> it = observers_.listIterator();
505  while (it.hasNext()) {
506  GrxObserver observer = it.next();
507  observer.update(this, arg);
508  }
509  }
510 
515  public ValueEditType GetValueEditType(String key) {
516  return new ValueEditText();
517  }
518 
519  public class ValueEditType{
520  private ValueEditType(){}
521  }
522  public class ValueEditText extends ValueEditType{
523  public ValueEditText(){}
524  }
525  public class ValueEditCombo extends ValueEditType{
526  private String[] items_;
527  public ValueEditCombo(String[] items){
528  items_ = items;
529  }
530  public String[] GetItems(){ return items_; }
531  }
532 }
com.generalrobotix.ui.grxui.Activator
Definition: GrxUIonEclipse-project-0.9.8/src/com/generalrobotix/ui/grxui/Activator.java:58
com.generalrobotix.ui.GrxBasePlugin.ValueEditType.ValueEditType
ValueEditType()
Definition: GrxBasePlugin.java:520
com.generalrobotix.ui.util.GrxXmlUtil.expandEnvVal
static String expandEnvVal(String str)
Definition: GrxXmlUtil.java:296
com.generalrobotix.ui.grxui
Definition: GrxUIonEclipse-project-0.9.8/src/com/generalrobotix/ui/grxui/Activator.java:1
com.generalrobotix.ui.grxui.PreferenceConstants
Definition: PreferenceConstants.java:6
com.generalrobotix.ui.GrxBasePlugin.GrxBasePlugin
GrxBasePlugin(String name, GrxPluginManager manager)
constructor
Definition: GrxBasePlugin.java:82
com.generalrobotix.ui.GrxBasePlugin.setSubMenu
void setSubMenu(MenuManager m)
add a submenu
Definition: GrxBasePlugin.java:303
com.generalrobotix.ui.GrxBasePlugin.url_
String url_
Definition: GrxBasePlugin.java:54
com.generalrobotix.ui.GrxBasePlugin.ValueEditType
Definition: GrxBasePlugin.java:519
com.generalrobotix.ui.util.MessageBundle.get
static final String get(String key)
Definition: MessageBundle.java:50
com.generalrobotix.ui.GrxBasePlugin.getIcon
Image getIcon()
get icon
Definition: GrxBasePlugin.java:287
com.generalrobotix.ui.GrxBasePlugin.name_
String name_
Definition: GrxBasePlugin.java:51
com.generalrobotix.ui.GrxBasePlugin.setDocument
void setDocument(Document doc)
set document
Definition: GrxBasePlugin.java:219
com.generalrobotix.ui.GrxBasePlugin.equals
boolean equals(Object obj)
check whether obj equals to this
Definition: GrxBasePlugin.java:357
com.generalrobotix.ui.GrxObserver.update
void update(GrxBasePlugin plugin, Object... arg)
arg
char * arg
Definition: cdjpeg.h:136
com.generalrobotix.ui.GrxBasePlugin.clone
GrxBasePlugin clone()
Override clone method.
Definition: GrxBasePlugin.java:434
com.generalrobotix.ui.GrxBasePlugin.unregisterCORBA
void unregisterCORBA()
Definition: GrxBasePlugin.java:419
com.generalrobotix.ui.GrxBasePlugin.manager_
GrxPluginManager manager_
Definition: GrxBasePlugin.java:53
autoplay.n
n
Definition: autoplay.py:12
com.generalrobotix.ui.GrxPluginManager.renamePlugin
boolean renamePlugin(GrxBasePlugin item, String newName)
rename plugin. If new name is already used, name is not changed.
Definition: GrxPluginManager.java:695
com.generalrobotix.ui.GrxBasePlugin.PROPERTY_TAG
static final String PROPERTY_TAG
Definition: GrxBasePlugin.java:70
com.generalrobotix.ui.GrxBasePlugin.toString
final String toString()
convert to String. Currently, name is returned.
Definition: GrxBasePlugin.java:207
com.generalrobotix.ui.item.GrxProjectItem
Definition: GrxProjectItem.java:74
com.generalrobotix.ui.GrxBasePlugin.syncExec
boolean syncExec(Runnable r)
Transfer SWT UI thread.
Definition: GrxBasePlugin.java:336
com.generalrobotix.ui.grxui.Activator.getDefault
static Activator getDefault()
Definition: GrxUIonEclipse-project-0.9.8/src/com/generalrobotix/ui/grxui/Activator.java:324
swingTest.f
f
Definition: swingTest.py:6
com.generalrobotix.ui.GrxBasePlugin.addObserver
void addObserver(GrxObserver v)
Definition: GrxBasePlugin.java:491
com.generalrobotix.ui.GrxBasePlugin.menuPath_
String[] menuPath_
Definition: GrxBasePlugin.java:63
com.generalrobotix.ui.GrxObserver
Definition: GrxObserver.java:3
b
long b
Definition: jpegint.h:371
com.generalrobotix.ui.GrxBasePlugin.setElement
void setElement(Element element)
set element
Definition: GrxBasePlugin.java:227
com.generalrobotix.ui.GrxBasePlugin.getSubMenu
Vector< MenuManager > getSubMenu()
get subMenu
Definition: GrxBasePlugin.java:319
com.generalrobotix.ui.GrxBasePlugin.setMenuItem
void setMenuItem(Action a)
add a menu item
Definition: GrxBasePlugin.java:295
com.generalrobotix.ui.GrxBasePlugin.doc_
Document doc_
Definition: GrxBasePlugin.java:65
com.generalrobotix.ui.GrxBasePlugin.getOldName
String getOldName()
Definition: GrxBasePlugin.java:211
com.generalrobotix.ui.GrxBasePlugin.ValueEditCombo.items_
String[] items_
Definition: GrxBasePlugin.java:526
com.generalrobotix.ui.GrxBasePlugin.propertyChanged
boolean propertyChanged(String property, String value)
check validity of new value of property and update if valid
Definition: GrxBasePlugin.java:463
com.generalrobotix.ui.GrxBasePlugin.getMenuPath
String[] getMenuPath()
get menu path
Definition: GrxBasePlugin.java:349
com.generalrobotix.ui.GrxBasePlugin.shutdown
void shutdown()
Definition: GrxBasePlugin.java:412
com.generalrobotix.ui.GrxBasePlugin.setURL
void setURL(String url)
set URL property
Definition: GrxBasePlugin.java:378
com.generalrobotix.ui.item
Definition: GrxCollisionPairItem.java:19
com.generalrobotix.ui.GrxBasePlugin.iconName_
String iconName_
Definition: GrxBasePlugin.java:59
value
png_voidp int value
Definition: png.h:2110
com.generalrobotix.ui.GrxBasePlugin.deleteObserver
void deleteObserver(GrxObserver v)
Definition: GrxBasePlugin.java:495
com.generalrobotix.ui.GrxBasePlugin.oldName_
String oldName_
Definition: GrxBasePlugin.java:52
com.generalrobotix.ui.GrxBasePlugin.ValueEditCombo
Definition: GrxBasePlugin.java:525
com.generalrobotix.ui.GrxBasePlugin.setProperty
Object setProperty(String key, String value)
set property value associated with a keyword
Definition: GrxBasePlugin.java:477
com.generalrobotix.ui.GrxBasePlugin.getField
static Object getField(Class<? extends GrxBasePlugin > cls, String field, Object defaultValue)
get field
Definition: GrxBasePlugin.java:399
com.generalrobotix.ui.GrxBasePlugin.ValueEditCombo.ValueEditCombo
ValueEditCombo(String[] items)
Definition: GrxBasePlugin.java:527
com.generalrobotix.ui.GrxBasePlugin.notifyObservers
void notifyObservers(Object... arg)
Definition: GrxBasePlugin.java:503
name
png_infop png_charpp name
Definition: png.h:2379
com.generalrobotix.ui.grxui.PreferenceConstants.BIN_SFX
static final String BIN_SFX
Definition: PreferenceConstants.java:9
viewSimTest.obj
obj
Definition: viewSimTest.py:6
com.generalrobotix.ui.GrxBasePlugin.getName
final String getName()
get name
Definition: GrxBasePlugin.java:199
com.generalrobotix.ui.util.GrxConfigBundle
Definition: GrxConfigBundle.java:34
com.generalrobotix.ui.GrxBasePlugin.isSelected
boolean isSelected()
check whether this is selected or not
Definition: GrxBasePlugin.java:252
com.generalrobotix.ui.util.GrxXmlUtil.replaceEnvVal
static String replaceEnvVal(File f)
Definition: GrxXmlUtil.java:320
autoplay.item
item
Definition: autoplay.py:11
com.generalrobotix.ui.GrxBasePlugin.ValueEditText
Definition: GrxBasePlugin.java:522
com.generalrobotix.ui.GrxBasePlugin.registerCORBA
boolean registerCORBA()
Definition: GrxBasePlugin.java:426
com.generalrobotix
com.generalrobotix.ui.GrxBasePlugin.setIcon
void setIcon(String iconName)
set icon
Definition: GrxBasePlugin.java:276
com.generalrobotix.ui.GrxPluginManager
プラグイン管理クラス GrxUIの核になるクラス。プラグインのロード等の、初期化を実行する。 プラグインとそのアイテムのマップ(::pluginMap_)、プラグインとその情報のマップ(::pinfoM...
Definition: GrxPluginManager.java:79
com.generalrobotix.ui.GrxBasePlugin.setMenuPath
void setMenuPath(String[] path)
set menu path
Definition: GrxBasePlugin.java:327
com.generalrobotix.ui.GrxBasePlugin.element_
Element element_
Definition: GrxBasePlugin.java:66
val
int val
Definition: jpeglib.h:956
com.generalrobotix.ui.GrxBasePlugin.getURL
String getURL(boolean expand)
Definition: GrxBasePlugin.java:367
com.generalrobotix.ui.GrxBaseItem
Definition: GrxBaseItem.java:35
com.generalrobotix.ui.util.MessageBundle
Definition: MessageBundle.java:16
com.generalrobotix.ui.GrxBasePlugin.getElement
Element getElement()
get element
Definition: GrxBasePlugin.java:236
com
com.generalrobotix.ui.GrxBasePlugin.setFocused
void setFocused(boolean b)
set/unset focus on this plugin
Definition: GrxBasePlugin.java:488
com.generalrobotix.ui.GrxBasePlugin.rename
void rename(String newName)
rename this item
Definition: GrxBasePlugin.java:388
com.generalrobotix.ui.GrxBasePlugin.ireg_
ImageRegistry ireg_
Definition: GrxBasePlugin.java:58
test.a
int a
Definition: test.py:1
com.generalrobotix.ui.GrxBasePlugin.restoreProperties
void restoreProperties()
restore properties. Called by menu item "restore Properties"
Definition: GrxBasePlugin.java:115
com.generalrobotix.ui.GrxBasePlugin.isExclusive
boolean isExclusive()
check whether this is exclusive or not
Definition: GrxBasePlugin.java:268
com.generalrobotix.ui.util
Definition: AlertBox.java:17
com.generalrobotix.ui.GrxBasePlugin.ValueEditText.ValueEditText
ValueEditText()
Definition: GrxBasePlugin.java:523
com.generalrobotix.ui
com.generalrobotix.ui.GrxBasePlugin.GetValueEditType
ValueEditType GetValueEditType(String key)
Return editing type of the key item.
Definition: GrxBasePlugin.java:515
com.generalrobotix.ui.GrxBasePlugin.getObserver
ArrayList< GrxObserver > getObserver()
Definition: GrxBasePlugin.java:499
com.generalrobotix.ui.GrxBasePlugin.setExclusive
void setExclusive(boolean b)
set exclusive flag
Definition: GrxBasePlugin.java:260
com.generalrobotix.ui.GrxBasePlugin.storeProperties
Element storeProperties()
store properties
Definition: GrxBasePlugin.java:139
com.generalrobotix.ui.GrxBasePlugin
Definition: GrxBasePlugin.java:50
com.generalrobotix.ui.GrxBasePlugin.setName
void setName(String name)
set name
Definition: GrxBasePlugin.java:189
com.generalrobotix.ui.GrxBasePlugin.setSelected
void setSelected(boolean b)
set selected flag
Definition: GrxBasePlugin.java:244
com.generalrobotix.ui.GrxBasePlugin.getMenu
Vector< Action > getMenu()
get menu
Definition: GrxBasePlugin.java:311
com.generalrobotix.ui.GrxBasePlugin.ValueEditCombo.GetItems
String[] GetItems()
Definition: GrxBasePlugin.java:530
com.generalrobotix.ui.util.GrxXmlUtil
Definition: GrxXmlUtil.java:48


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:02