Ignore:
Timestamp:
08/31/12 15:16:13 (12 years ago)
Author:
sherbold
Message:
  • changed JFCGUIElementSpec to store the elementHash as String instead of int. The reason for this is a problem that Integer.parseInt() that can occur with handling of negative hexadecimal values (see also Rev. 588)
Location:
trunk/quest-plugin-jfc/src/main/java/de/ugoe/cs/quest/plugin/jfc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/quest-plugin-jfc/src/main/java/de/ugoe/cs/quest/plugin/jfc/JFCLogParser.java

    r713 r736  
    340340                    else if ("hash".equals(atts.getValue("name"))) { 
    341341                        currentGuiElementSpec.setElementHash 
    342                             (Integer.parseInt(atts.getValue("value"), 16)); 
     342                            (atts.getValue("value")); 
    343343                    } 
    344344                } 
     
    645645            matcher = Pattern.compile(pattern).matcher(matcher.group(2)); 
    646646             
    647             float elementHash = -1; 
     647            String elementHash = "-1"; 
    648648             
    649649            pattern = "(([\\d]*)|([\\w$]*)|(([\\w$@\\.]*)=([\\w$@\\.]*)))\\z"; 
     
    656656                        // found digit value. Those in combination usually denote the position 
    657657                        // of the GUI element. So calculate an element has out of them 
    658                         elementHash += Integer.parseInt(valueMatcher.group(2)); 
     658                        elementHash += valueMatcher.group(2); 
    659659                    } 
    660660                    else if ((valueMatcher.group(5) != null) && 
     
    667667                         
    668668                        if ("alignmentX".equals(key) || "alignmentY".equals(key)) { 
    669                             elementHash += Float.parseFloat(valueMatcher.group(6)); 
     669                            elementHash += valueMatcher.group(6); 
    670670                        } 
    671671                    } 
     
    673673            } 
    674674 
    675             currentGuiElementSpec.setName("unknown(" + ((int) elementHash) + ")"); 
     675            currentGuiElementSpec.setName("unknown(" + elementHash + ")"); 
    676676            currentGuiElementSpec.setType(type); 
    677677            currentGuiElementSpec.setIndex(-1); 
    678             currentGuiElementSpec.setElementHash((int) elementHash); 
     678            currentGuiElementSpec.setElementHash(elementHash); 
    679679        } 
    680680        catch (Exception e) 
  • trunk/quest-plugin-jfc/src/main/java/de/ugoe/cs/quest/plugin/jfc/guimodel/JFCGUIElement.java

    r714 r736  
    6969     * @return the hashCode 
    7070     */ 
    71     int getElementHash() { 
     71    String getElementHash() { 
    7272        return specification.getElementHash(); 
    7373    } 
  • trunk/quest-plugin-jfc/src/main/java/de/ugoe/cs/quest/plugin/jfc/guimodel/JFCGUIElementSpec.java

    r714 r736  
    4343    /** 
    4444     * <p> 
    45      * hash code of the window elemt. Used as unique identifier during its existence. 
    46      * </p> 
    47      */ 
    48     private int elementHash = -1; 
     45     * hash code of the window element. Used as unique identifier during its existence. 
     46     * </p> 
     47     */ 
     48    private String elementHash = "-1"; 
    4949 
    5050    /** 
     
    5353     * </p> 
    5454     */ 
    55     private List<Integer> formerElementHashes = new ArrayList<Integer>(); 
     55    private List<String> formerElementHashes = new ArrayList<String>(); 
    5656 
    5757    /* (non-Javadoc) 
     
    8787        // the same, then similarity is given. Therefore these are the first two comparisons 
    8888         
    89         if (elementHash == otherSpec.elementHash) { 
     89        if (elementHash.equals(otherSpec.elementHash)) { 
    9090            return true; 
    9191        } 
     
    163163            ((type == otherSpec.type) || ((type != null) && (type.equals(otherSpec.type)))) && 
    164164            ((icon == otherSpec.icon) || ((icon != null) && (icon.equals(otherSpec.icon)))) && 
    165             (index == otherSpec.index) && (elementHash == otherSpec.elementHash); 
     165            (index == otherSpec.index) && (elementHash.equals(otherSpec.elementHash)); 
    166166    } 
    167167 
     
    233233     * @return the elementHash 
    234234     */ 
    235     public int getElementHash() { 
     235    public String getElementHash() { 
    236236        return elementHash; 
    237237    } 
     
    275275     * @param elementHash the elementHash to set 
    276276     */ 
    277     public void setElementHash(int newElementHash) { 
    278         if ((this.elementHash > -1) && 
     277    public void setElementHash(String newElementHash) { 
     278        if (!this.elementHash.equals("-1") && 
    279279            !this.formerElementHashes.contains(this.elementHash)) 
    280280        { 
     
    294294    void update(JFCGUIElementSpec other) { 
    295295        if (other != this) { 
    296             for (int formerElementHash : other.formerElementHashes) { 
     296            for (String formerElementHash : other.formerElementHashes) { 
    297297                setElementHash(formerElementHash); 
    298298            } 
Note: See TracChangeset for help on using the changeset viewer.