コード例 #1
0
 private void updateCategory() throws Exception {
   int id = 0;
   for (LabelGroup group : labelGroups) {
     CCategory groupCategory = null;
     for (CLabel label : group.labels) {
       CCategory labelCategory = label.getCategory();
       if (null == groupCategory && null != labelCategory) {
         groupCategory = labelCategory;
       }
       if (null != groupCategory && !labelCategory.equals(groupCategory)) {
         // TODO generating an exception or warning
         throw new Exception(
             String.format(
                 "Labels in the same group are belong more than one categories: \"%s\" and \"%s\"",
                 groupCategory.getName(), labelCategory.getName()));
       }
     }
     if (null == groupCategory) {
       id++;
       try {
         category = getOwner().getLocalCategoryBox().newCategory(GROUP_FIELD_NAME + id);
       } catch (Exception e) {
         // TODO is it possible?
         e.printStackTrace();
       }
     }
     for (CLabel label : group.labels) {
       label.setCategory(category);
     }
   }
 }
コード例 #2
0
  private void initLabelGroups() {
    if (labelPairs.size() == 0) return;

    List<LabelPair> tempPairs = new ArrayList(labelPairs.size());
    tempPairs.addAll(labelPairs);

    Stack<CLabel> groupStack = new Stack<CLabel>();
    List<LabelPair> trash = new ArrayList<LabelPair>();

    while (tempPairs.size() > 0) {
      LabelPair pair0 = tempPairs.get(0);
      LabelGroup group = newLabelGroup();

      group.addLabel(pair0.label1);
      group.addLabel(pair0.label2);

      groupStack.push(pair0.label1);
      groupStack.push(pair0.label2);

      tempPairs.remove(0);

      while (!groupStack.empty()) {
        CLabel groupedLabel = groupStack.pop();
        Iterator<LabelPair> pairs = tempPairs.iterator();

        while (pairs.hasNext()) {
          LabelPair pair = pairs.next();

          CLabel candidate =
              groupedLabel.equals(pair.label1)
                  ? pair.label2
                  : groupedLabel.equals(pair.label2) ? pair.label1 : null;

          if (null == candidate) continue;

          if (!groupStack.contains(candidate)) {
            groupStack.push(candidate);
            group.labels.add(candidate);
          }
          trash.add(pair);
          pairs.remove();
        }
      }
      tempPairs.removeAll(trash);
      trash.clear();
    }
  }
コード例 #3
0
ファイル: City.java プロジェクト: akarve/giant.java
  // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
  private void initComponents() {
    java.awt.GridBagConstraints gridBagConstraints;

    linesLayer =
        new JPanel() {
          protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            drawLines(g);
          }
        };
    CPanel = new javax.swing.JPanel();
    CLabel = new javax.swing.JLabel();
    towerLayer = new javax.swing.JPanel();
    ZQPanel = new javax.swing.JPanel();
    QLabel = new javax.swing.JLabel();

    setLayout(new java.awt.BorderLayout());

    setFocusable(false);
    linesLayer.setLayout(new java.awt.BorderLayout());

    linesLayer.setFocusable(false);
    linesLayer.setName("linesLayer");
    linesLayer.setOpaque(false);
    CPanel.setLayout(new java.awt.GridBagLayout());

    CPanel.setFocusable(false);
    CPanel.setOpaque(false);
    CLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    CLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/C.png")));
    CLabel.setToolTipText("Complex Field");
    CLabel.setAlignmentX(0.5F);
    CLabel.setAlignmentY(0.0F);
    CLabel.setFocusable(false);
    gridBagConstraints = new java.awt.GridBagConstraints();
    gridBagConstraints.insets = new java.awt.Insets(10, 0, 0, 0);
    CPanel.add(CLabel, gridBagConstraints);

    linesLayer.add(CPanel, java.awt.BorderLayout.NORTH);

    towerLayer.setLayout(new java.awt.GridBagLayout());

    towerLayer.setFocusable(false);
    towerLayer.setName("towerLayer");
    towerLayer.setOpaque(false);
    linesLayer.add(towerLayer, java.awt.BorderLayout.CENTER);

    ZQPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.CENTER, 0, 0));

    ZQPanel.setFocusable(false);
    ZQPanel.setOpaque(false);
    QLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/Q.png")));
    QLabel.setToolTipText("Rational Field");
    QLabel.setFocusable(false);
    QLabel.setIconTextGap(0);
    ZQPanel.add(QLabel);

    linesLayer.add(ZQPanel, java.awt.BorderLayout.SOUTH);

    add(linesLayer, java.awt.BorderLayout.CENTER);
  }
コード例 #4
0
 @Override
 public int hashCode() {
   int result = label1 != null ? label1.hashCode() : 0;
   result += label2 != null ? label2.hashCode() : 0;
   return result;
 }