@Override
 public List<IJavaElement> getByPseudoElement(String selector, Object[] params) {
   JSplitPane pane = (JSplitPane) component;
   if (selector.equals("left") || selector.equals("top")) {
     return Arrays.asList(
         JavaElementFactory.createElement(pane.getTopComponent(), getDriver(), getWindow()));
   } else if (selector.equals("right") || selector.equals("bottom")) {
     return Arrays.asList(
         JavaElementFactory.createElement(pane.getBottomComponent(), getDriver(), getWindow()));
   }
   return super.getByPseudoElement(selector, params);
 }
 @Override
 public boolean marathon_select(String value) {
   JComponent spinnerEditor = ((JSpinner) component).getEditor();
   if (spinnerEditor == null)
     throw new JavaAgentException("Null value returned by getEditor() on spinner", null);
   IJavaElement ele = JavaElementFactory.createElement(spinnerEditor, driver, window);
   ele.marathon_select(value);
   try {
     ((JSpinner) component).commitEdit();
   } catch (Throwable t) {
   }
   return true;
 }
 @Override
 public String _getText() {
   IJavaElement editor = JavaElementFactory.createElement(getEditor(), getDriver(), getWindow());
   return editor.getText();
 }
 @Override
 public List<IJavaElement> getByPseudoElement(String selector, Object[] params) {
   if (selector.equals("editor"))
     return Arrays.asList(JavaElementFactory.createElement(getEditor(), getDriver(), getWindow()));
   return super.getByPseudoElement(selector, params);
 }