Package org.takadb.editor.database.entities

Examples of org.takadb.editor.database.entities.ElementEntity$Identifier


    elementShallowXref.clear();

    // Create a shallow cross-reference of contained element => immediately containing elements
    Iterator iter = elements.values().iterator();
    while (iter.hasNext()) {
      ElementEntity iterElement = (ElementEntity)iter.next();

      for (int i = 0; i < 4; i++) {
        Integer containedId = new Integer (iterElement.pElementId[i]);
        if (iterElement.pElementId[i] != 0) {
          HashSet containsSet = (HashSet)elementShallowXref.get (containedId);
View Full Code Here


    HashMap intermediateMap = new HashMap();

    // Fill intermediate map and prime results map with stroke counts of stand-alone glyphs
    Iterator iter = elements.values().iterator();
    while (iter.hasNext()) {
      ElementEntity element = (ElementEntity)iter.next();
      for (int i = 1; i <= element.glyphs.size(); i++) {
        ElementEntity.Glyph glyph = element.glyphs.get (new Integer (i));
        existsSet.add ("" + element.elementId + "-" + i);
        if (glyph.standalone) {
          resultsMap.put ("" + element.elementId + "-" + i, new Integer (glyph.strokes.size()));
        } else {
          ArrayList containsList = new ArrayList();
          for (int j = 0; j < 4; j++) {
            if (element.pElementId[j] != 0) {
              containsList.add ("" + element.pElementId[j] + "-" + glyph.pGlyphVariant[j]);
            }
          }
          intermediateMap.put ("" + element.elementId + "-" + i, containsList);
        }
      }
    }

    // Iterate over intermediate map until all results known
    // In theory this is nasty, in practice it only needs about 3 iterations
    do {
      Iterator iter2 = ((HashMap)intermediateMap.clone()).keySet().iterator();

      while (iter2.hasNext()) {
        String elementGlyph = (String)iter2.next();
        ArrayList elementGlyphSubElements = (ArrayList)intermediateMap.get (elementGlyph);

        boolean complete = true;
        int count = 0;
        Iterator iter3 = elementGlyphSubElements.iterator();
        while (iter3.hasNext()) {
          String containedElementGlyph = (String)iter3.next();
          Integer containedCount = (Integer)resultsMap.get (containedElementGlyph);
          if (containedCount != null) {
            count += containedCount.intValue();
          } else {
            // Fallback in case of dangling references
            if (existsSet.contains (containedElementGlyph)) {
              complete = false;
            } else {
              System.err.println ("recalculateAllElementStrokeCounts(): Dangling reference to " + containedElementGlyph + " in " + elementGlyph);
            }
          }
        }
        if (complete) {
          resultsMap.put (elementGlyph, new Integer (count));
          intermediateMap.remove (elementGlyph);
        }
      }

    } while (intermediateMap.size() > 0);

    // Update all stroke counts
    Iterator iter4 = resultsMap.keySet().iterator();
    while (iter4.hasNext()) {
      String elementGlyph = (String)iter4.next();
      int strokeCount = ((Integer)resultsMap.get (elementGlyph)).intValue();
      String[] parts = elementGlyph.split ("-");
      Integer elementId = new Integer (parts[0]);
      Integer glyphVariant = new Integer (parts[1]);
      ElementEntity element = (ElementEntity)elements.get (elementId);
      ElementEntity.Glyph glyph = element.glyphs.get (glyphVariant);
      glyph.strokeCount = strokeCount;
      element.glyphs.set (glyphVariant, glyph);
    }
View Full Code Here

  /*
   * Retrieve a clone of a DBSQLElement from the local database
   */
  public ElementEntity getElement (ElementEntity.Identifier identifier) {

    ElementEntity element = (ElementEntity)elements.get (new Integer (identifier.elementId));

    if (element != null)
      return (ElementEntity)element.clone();
    return null;

  }
View Full Code Here

    ArrayList allElementsList = new ArrayList();
    iter = elements.keySet().iterator();
    while (iter.hasNext()) {
      Integer iterElementId = (Integer)iter.next();
      ElementEntity element = (ElementEntity)elements.get (iterElementId);
      allElementsList.add (element.clone());
    }

    return allElementsList;

  }
View Full Code Here

    Iterator iter;
   
    iter = allElementsList.iterator();
    while (iter.hasNext()) {
      ElementEntity element = (ElementEntity)iter.next();
      // Don't use setElement() for this or nasty slow things will happen with the element cross-reference
      elements.put (new Integer (element.elementId), element);
    }
    recalculateAllElementContains();
    recalculateAllElementStrokeCounts();
View Full Code Here

   */
  public int newElement() {
    // find the current biggest elementID
    int lMaxID = getMaxElementId();
    lMaxID++;
    ElementEntity lNewEmptyElement = new ElementEntity(lMaxID);
    elements.put(new Integer(lMaxID), lNewEmptyElement);
    return lMaxID;
  }
View Full Code Here

   * @param identifier
   * @return
   */
  public int cloneElement(DBIdentifier iId) {
    int lId = getMaxElementId()+1;
    ElementEntity lElementToClone = getElement((Identifier) iId);
    ElementEntity lNewElement = (ElementEntity) lElementToClone.clone();
    lNewElement.elementId =  lId;
    //don't use setElement as it makes a clone
    elements.put(new Integer(lId), lNewElement);
    return lId;
  }
View Full Code Here

        }
    );
    lElementsSorted.addAll(lElements);
    for (int lCurElemIdx = 0; lCurElemIdx < lNbElem; lCurElemIdx++)
    {
      ElementEntity lCurElem = (ElementEntity) lElements.get(lCurElemIdx);
      int lNbVariant = lCurElem.glyphs.size();
      for (int lCurVarIdx = 1; lCurVarIdx <= lNbVariant; lCurVarIdx++)
      {
       
       
View Full Code Here

    HashSet results = new HashSet();

    Iterator iter = dbcontroller.elements.values().iterator();
    while (iter.hasNext()) {
      ElementEntity searchElement = (ElementEntity)iter.next();
      if (searchElementsImpl (dbcontroller.elements, searchElement, node) == true) {
        results.add (new Integer (searchElement.elementId));
      }
    }
View Full Code Here

    HashSet results = new HashSet();

    Iterator iter = searchElements.iterator();
    while (iter.hasNext()) {
      Integer searchElementId = (Integer)iter.next();
      ElementEntity searchElement = (ElementEntity)dbcontroller.elements.get (new Integer (searchElementId.intValue()));
      getNthSubElementsImpl (dbcontroller.elements, results, searchElement, searchIndex, 0);
    }

    return results;
  }
View Full Code Here

TOP

Related Classes of org.takadb.editor.database.entities.ElementEntity$Identifier

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.