// private void adjustPosition() public void adjustPosition() { StateGroup group; StateInterval state; double duration; double max_duration = 0; Enumeration groups = all_states.visible.elements(); while (groups.hasMoreElements()) { group = (StateGroup) groups.nextElement(); if (group.size() > 0) { state = (StateInterval) group.lastElement(); duration = state.info.endT - FrameBegTime; if (duration > max_duration) max_duration = duration; } } boolean end = false; if (max_duration < tMaxT || max_duration > tMaxT) { if (max_duration < tMaxT) end = true; double diff = tMaxT - max_duration; tMaxT = max_duration; maxT -= diff; updateH(); parent.setHoriz(); centralizeH(); } if (end) { if ((parent.hbar.getValue() + parent.hbar.getVisibleAmount()) >= parent.hbar.getMaximum()) { parent.hbar.setValue(maxH - widthCan); adjustImgH(parent.hbar.getValue()); parent.vport.setViewPosition(new Point(panePosX, 0)); debug.println("adjustPosition() : "); debug.println("\t" + "parent.hbar.setValue(" + (maxH - widthCan) + ")"); debug.println("\t" + "parent.vport.setViewPosition(" + panePosX + ", 0)"); } } }