Ejemplo n.º 1
0
  private void setPanel(List<ObjectInfo> tar) {
    this.targetObject = tar;
    columnWidth = new HashMap<Integer, Integer>();
    rowLength = new HashMap<Integer, Integer>();
    cellpanel.clear();

    for (int i = 0; i < tar.size(); i++) {
      ObjectInfo oin = tar.get(i);
      if ((oin.isLinked() == true || oin.hasLink() == true) && oin.set == true) {

        if (!mode) {
          cellpanel.put(oin, new CellPanel(oin));
        } else {

        }

        Integer length = rowLength.get(oin.getPy());
        Integer width = columnWidth.get(oin.getPx());
        if (length == null || cellpanel.get(oin).getPreferredSize().height > length) {
          rowLength.put(
              new Integer(oin.getPy()), new Integer(cellpanel.get(oin).getPreferredSize().height));
        }
        if (width == null || cellpanel.get(oin).getPreferredSize().width > width) {
          columnWidth.put(
              new Integer(oin.getPx()), new Integer(cellpanel.get(oin).getPreferredSize().width));
        }
      }
    }

    for (Iterator<Entry<ObjectInfo, CellPanel>> it = cellpanel.entrySet().iterator();
        it.hasNext(); ) {
      Entry<ObjectInfo, CellPanel> entry = it.next();
      ObjectInfo object = entry.getKey();
      CellPanel panel = entry.getValue();
      try {
        if (panel != null) {
          /*int px = 0;
          int py = 0;
          for(int i = 0; i < object.getPx(); i++){
          	px += rowLength.get(i);
          }
          for(int i = 0; i < object.getPy(); i++){
          	py += columnWidth.get(i);
          }
          if(panel.getCellLength() > cellLength /2){
          	panel.setBounds(object.getPx() * (columnWidth.get(object.getPx())+ 40) + 25  , object.getPy() * (rowLength.get(object.getPy())+ 40) + 20, panel.getMaximumSize().width,panel.getMaximumSize().height );
          }else{
          	panel.setBounds(object.getPx() * (columnWidth.get(object.getPx())+ 40) + 25  , object.getPy() * (rowLength.get(object.getPy())+ 40) +(rowLength.get(object.getPy()) /2) - panel.getCellLength()/2, panel.getMaximumSize().width,panel.getMaximumSize().height );
          }
          add(panel, JLayeredPane.DEFAULT_LAYER);*/
          if (panel != null) {
            int px = 0;
            int py = 0;
            for (int i = 0; i < object.getPy(); i++) {
              if (rowLength.get(i) != null) {
                py += rowLength.get(i);
              }
              py += 60;
            }
            for (int i = 0; i < object.getPx(); i++) {
              if (columnWidth.get(i) != null) {
                px += columnWidth.get(i);
              }
              px += 60;
            }
            panel.setBounds(
                px + 25, py + 40, panel.getMaximumSize().width, panel.getMaximumSize().height);

            add(panel, JLayeredPane.DEFAULT_LAYER);
          }
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }