private void createDimMappingEditor() {
    inpKey = new InputBox(this, "inpKey");
    inpKey.setWidth(300);

    inpDescription = new InputBox(this, "inpDescription");
    inpDescription.setMultiLine(true);
    inpDescription.setRows(3);
    inpDescription.setWidth(300);

    lbcDimension = new ListBox(this, "lbcDimension");
    lbcDimension.setChangeNotification(true);
    lbcDimension.addElementSelectedListener(
        new ElementSelectedListener() {
          public void elementSelected(ElementSelectedEvent event) {
            onDimensionSelection((String) event.getElement());
          }
        });
    for (IDimension dim : dataPool.getDimensions()) {
      String title =
          dim.getTitle() != null ? dim.getKey() + "(" + dim.getTitle() + ")" : dim.getKey();
      lbcDimension.addElement(title, dim.getKey());
    }

    chkOnUnmapped = new RadioGroup(this, "chkOnUnmapped");
    chkOnUnmapped.setChangeNotification(true);
    chkOnUnmapped.addElement("Create", "CREATE");
    chkOnUnmapped.addElement("Skip", "SKIP");
    chkOnUnmapped.addElement("Assign To", "ASSIGN");
    chkOnUnmapped.addElement("Fail", "FAIL");

    chkOptions = new CheckBoxGroup(this, "chkOptions");
    chkOptions.addElement("Autocreate Mapping", "autocreate");

    new Label(this, "elmSelector").setText("");
    elmSelector = null;

    /*
     * Load Initial Values
     */
    if (dimMapping.getKey() != null) {
      inpKey.setText(dimMapping.getKey());
      inpKey.setEnabled(false);
    }
    inpDescription.setText(dimMapping.getDescription() != null ? dimMapping.getDescription() : "");
    lbcDimension.setSelectedKey(
        dimMapping.getDimensionKey() != null ? dimMapping.getDimensionKey() : "");

    chkOnUnmapped.setSelectedKey(dimMapping.getOnUnmapped().name());

    if (dimMapping.isAutoCreateMapping()) {
      chkOptions.setSelectedKey("autocreate");
    }

    if (elmSelector != null
        && dimMapping.getUnmappedPath() != null
        && dimMapping.getUnmappedPath().length() != 0) {
      IDimension dimension = elmSelector.getDimension();
      try {
        IDimensionElement elm = dimension.parsePath(dimMapping.getUnmappedPath());
        elmSelector.setDimensionElement(elm);
      } catch (Exception e) {
        errInfo.showError("Error restoring unmapped value - element removed?: " + e);
      }
    }

    inpTestString = new InputBox(this, "inpTestString");
    inpTestString.setWidth(600);

    Button btTest = new Button(this, "btTest");
    btTest.setTitle("Test");
    btTest.addSelectionListener(
        new SelectionListener() {
          /* (non-Javadoc)
           * @see de.jwic.events.SelectionListener#objectSelected(de.jwic.events.SelectionEvent)
           */
          public void objectSelected(SelectionEvent event) {
            applyTest();
          }
        });
  }
  /**
   * @param container
   * @param name
   */
  public MappingEditorControl(
      IControlContainer container, String name, String dpManagerKey, DimMappingDef dimMapping) {
    super(container, name);
    this.dpManagerKey = dpManagerKey;
    this.dimMapping = dimMapping;
    isNew = dimMapping.getKey() == null;

    try {
      dataPool =
          CubeHandler.getCubeHandler(ETLgineServer.getInstance().getServerContext())
              .openDataPool(dpManagerKey);
    } catch (ETLException e) {
      throw new RuntimeException("Error Reading DataPool: " + e, e);
    }

    String key = dimMapping.getKey() != null ? dimMapping.getKey() : null;
    setTitle("Mapping Editor (" + key + ")");

    errInfo = new ErrorWarning(this, "errInfo");
    mapEditor = new MappingElementEditorControl(this, "mapEditor");

    setupActionBar();
    createDimMappingEditor();

    // load childs if its not a new one
    if (!isNew) {
      loadMappingElements();
    }
  }
 private void loadMappingElements() {
   ServerContext context = ETLgineServer.getInstance().getServerContext();
   String syncTableConnectionName =
       context.getProperty(dpManagerKey + ".datapool.syncTables.connection");
   try {
     Connection connection = JDBCUtil.openConnection(context, syncTableConnectionName);
     try {
       DimMappingElementDefDAO dao = new DimMappingElementDefDAO(connection);
       List<DimMappingElementDef> list = dao.listMappings(dimMapping.getKey());
       for (DimMappingElementDef me : list) {
         me.setDimensionKey(dimMapping.getDimensionKey()); // for security...
       }
       mapEditor.setMappingList(list);
     } finally {
       connection.close();
     }
   } catch (Exception e) {
     errInfo.showError(e);
     log.error("Error loading mapping elements", e);
   }
 }