protected void copy(EditorConfiguration src, EditorConfiguration dst) {
    dst.title = src.title;
    dst.mimeType = src.mimeType;
    Enumeration styleNames = src.styleContext.getStyleNames();
    if (src.styleContext == dst.styleContext) dst.styleContext = new StyleContext();
    while (styleNames.hasMoreElements()) {
      String sname = (String) styleNames.nextElement();
      Style style = src.styleContext.getStyle(sname);

      Style newStyle = dst.styleContext.addStyle(sname, null);
      newStyle.addAttributes(style.copyAttributes());
    }

    styleNames = dst.styleContext.getStyleNames();
    while (styleNames.hasMoreElements()) {
      String sname = (String) styleNames.nextElement();
      Style style = src.styleContext.getStyle(sname);
      AttributeSet resolveParent = style.getResolveParent();
      Style parent = (Style) resolveParent;

      if (parent != null) {
        dst.styleContext
            .getStyle(sname)
            .setResolveParent(dst.styleContext.getStyle(parent.getName()));
      }
    }
  }
    @Override
    public void sourceAdded(SourceEvent e) {
      String name = e.getName();
      SourceManager sm = dsf.getSourceManager();
      if (e.isWellKnownName()
          && !sm.getSource(name).isSystemTableSource()
          && !layerMap.containsKey(name)) {
        try {
          Layer layer = new Layer();
          layer.setName(name);
          layer.setTitle(name);

          // Setting the bounding box data
          DataSource ds = dsf.getDataSource(name);
          ds.open();
          Envelope env = ds.getFullExtent();
          CoordinateReferenceSystem crs = ds.getCRS();
          ds.close();
          BoundingBox bBox = getBoundingBox(env, crs);
          if (bBox == null) {
            return;
          }
          layer.getCRS().add(bBox.getCRS());
          layer.getBoundingBox().add(bBox);
          layer.setEXGeographicBoundingBox(getGeographicBoundingBox(env, bBox.getCRS()));
          layer.setQueryable(true);
          if (layerStyles.containsKey(name)) {
            String[] lStyles = layerStyles.get(name);
            for (int i = 0; i < lStyles.length; i++) {
              Style style = new Style();
              String styleName = lStyles[i];
              style.setName(styleName);
              style.setTitle(styleName);
              layer.getStyle().add(style);
            }
          }
          layerMap.put(name, layer);
        } catch (NoSuchTableException ex) {
        } catch (DataSourceCreationException ex) {
        } catch (DriverException ex) {
        }
      }
    }