Changeset 12 for trunk


Ignore:
Timestamp:
Sep 1, 2010, 12:32:47 PM (8 years ago)
Author:
b.hoekman@…
Message:

Version 1 of the ConnectionFramework?!!

Location:
trunk/msCompareTransformationGUI/src/connectionsframework
Files:
5 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/msCompareTransformationGUI/src/connectionsframework/Bundle.properties

    r11 r12  
    1717ConnectionsFrameworkView.jOutputCcB.text=output
    1818ConnectionsFrameworkView.jImportRulesFileMI.text=import rules xml
     19ConnectionsFrameworkView.jMenuItem1.text=Remove this connection
     20ConnectionsFrameworkView.jCheckBox1.text=restrict expansions
     21ConnectionsFrameworkView.jPrivateConnectionsCcB.text=make new connections private
     22ConnectionsFrameworkView.jCheckBox2.toolTipText=
     23ConnectionsFrameworkView.jButton2.text=Add Sourceless
     24ConnectionsFrameworkView.jButton2.toolTipText=Add Connections without Source
     25ConnectionsFrameworkView.jSaveRulesMI.text=save rules xml
  • trunk/msCompareTransformationGUI/src/connectionsframework/ConnectionsFrameworkView.form

    r11 r12  
    7878                                              <Component id="jOutputCcB" alignment="0" min="-2" max="-2" attributes="0"/>
    7979                                          </Group>
     80                                          <EmptySpace max="-2" attributes="0"/>
     81                                          <Group type="103" groupAlignment="0" attributes="0">
     82                                              <Group type="102" attributes="0">
     83                                                  <Group type="103" groupAlignment="0" attributes="0">
     84                                                      <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
     85                                                      <Component id="jRelationCB" min="-2" pref="221" max="-2" attributes="1"/>
     86                                                      <Component id="jCheckBox1" min="-2" max="-2" attributes="0"/>
     87                                                  </Group>
     88                                                  <EmptySpace max="-2" attributes="0"/>
     89                                                  <Group type="103" groupAlignment="0" attributes="0">
     90                                                      <Component id="jRemoveConnectedCcB" min="-2" max="-2" attributes="0"/>
     91                                                      <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/>
     92                                                      <Group type="102" attributes="0">
     93                                                          <Component id="jConnectionToCB" min="-2" pref="175" max="-2" attributes="0"/>
     94                                                          <EmptySpace max="-2" attributes="0"/>
     95                                                          <Component id="jButton1" min="-2" max="-2" attributes="0"/>
     96                                                          <EmptySpace max="-2" attributes="0"/>
     97                                                          <Component id="jButton2" min="-2" max="-2" attributes="0"/>
     98                                                      </Group>
     99                                                  </Group>
     100                                              </Group>
     101                                              <Component id="jCheckBox2" min="-2" max="-2" attributes="0"/>
     102                                          </Group>
    80103                                      </Group>
    81104                                      <Component id="jLabel6" alignment="0" min="-2" max="-2" attributes="0"/>
    82105                                  </Group>
    83                                   <EmptySpace max="-2" attributes="0"/>
    84                                   <Group type="103" groupAlignment="0" attributes="0">
    85                                       <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
    86                                       <Component id="jRelationCB" min="-2" pref="221" max="-2" attributes="1"/>
    87                                   </Group>
    88                                   <EmptySpace max="-2" attributes="0"/>
    89                                   <Group type="103" groupAlignment="0" attributes="0">
    90                                       <Component id="jRemoveConnectedCcB" min="-2" max="-2" attributes="0"/>
    91                                       <Component id="jLabel4" alignment="0" min="-2" max="-2" attributes="0"/>
    92                                       <Group type="102" attributes="0">
    93                                           <Component id="jConnectionToCB" min="-2" pref="175" max="-2" attributes="0"/>
    94                                           <EmptySpace max="-2" attributes="0"/>
    95                                           <Component id="jButton1" min="-2" max="-2" attributes="0"/>
    96                                       </Group>
    97                                   </Group>
    98                                   <EmptySpace pref="439" max="32767" attributes="0"/>
     106                                  <EmptySpace pref="326" max="32767" attributes="0"/>
    99107                              </Group>
    100108                          </Group>
     
    119127                                      <Component id="jConnectionToCB" alignment="3" min="-2" max="-2" attributes="0"/>
    120128                                      <Component id="jButton1" alignment="3" min="-2" max="-2" attributes="0"/>
     129                                      <Component id="jButton2" alignment="3" min="-2" max="-2" attributes="0"/>
    121130                                  </Group>
    122131                              </Group>
     
    136145                              </Group>
    137146                              <Component id="jRemoveConnectedCcB" alignment="0" min="-2" max="-2" attributes="0"/>
     147                              <Group type="102" attributes="0">
     148                                  <Component id="jCheckBox1" min="-2" max="-2" attributes="0"/>
     149                                  <EmptySpace max="-2" attributes="0"/>
     150                                  <Component id="jCheckBox2" min="-2" max="-2" attributes="0"/>
     151                              </Group>
    138152                          </Group>
    139153                          <EmptySpace max="-2" attributes="0"/>
     
    270284                          </StringArray>
    271285                        </Property>
     286                        <Property name="componentPopupMenu" type="javax.swing.JPopupMenu" editor="org.netbeans.modules.form.ComponentChooserEditor">
     287                          <ComponentRef name="jPopupMenu1"/>
     288                        </Property>
    272289                        <Property name="name" type="java.lang.String" value="jAddedConnectionsList" noResource="true"/>
    273290                      </Properties>
     
    312329                    <Property name="name" type="java.lang.String" value="jRemoveConnectedCcB" noResource="true"/>
    313330                  </Properties>
     331                  <Events>
     332                    <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jRemoveConnectedCcBActionPerformed"/>
     333                  </Events>
    314334                </Component>
    315335                <Container class="javax.swing.JScrollPane" name="jScrollPane4">
     
    396416                    <Property name="name" type="java.lang.String" value="jAddButton" noResource="true"/>
    397417                  </Properties>
     418                  <Events>
     419                    <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton1ActionPerformed"/>
     420                  </Events>
     421                </Component>
     422                <Component class="javax.swing.JCheckBox" name="jCheckBox1">
     423                  <Properties>
     424                    <Property name="selected" type="boolean" value="true"/>
     425                    <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     426                      <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jCheckBox1.text" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     427                    </Property>
     428                    <Property name="name" type="java.lang.String" value="jCheckBox1" noResource="true"/>
     429                  </Properties>
     430                  <Events>
     431                    <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jCheckBox1ActionPerformed"/>
     432                  </Events>
     433                </Component>
     434                <Component class="javax.swing.JCheckBox" name="jCheckBox2">
     435                  <Properties>
     436                    <Property name="selected" type="boolean" value="true"/>
     437                    <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     438                      <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jPrivateConnectionsCcB.text" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     439                    </Property>
     440                    <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     441                      <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jCheckBox2.toolTipText" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     442                    </Property>
     443                    <Property name="name" type="java.lang.String" value="jPrivateConnectionsCcB" noResource="true"/>
     444                  </Properties>
     445                  <Events>
     446                    <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jCheckBox2ActionPerformed"/>
     447                  </Events>
     448                </Component>
     449                <Component class="javax.swing.JButton" name="jButton2">
     450                  <Properties>
     451                    <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     452                      <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jButton2.text" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     453                    </Property>
     454                    <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     455                      <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jButton2.toolTipText" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     456                    </Property>
     457                    <Property name="name" type="java.lang.String" value="jButton2" noResource="true"/>
     458                  </Properties>
     459                  <Events>
     460                    <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jButton2ActionPerformed"/>
     461                  </Events>
    398462                </Component>
    399463              </SubComponents>
     
    433497              <Events>
    434498                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jImportRulesFileMIActionPerformed"/>
     499              </Events>
     500            </MenuItem>
     501            <MenuItem class="javax.swing.JMenuItem" name="jMenuItem2">
     502              <Properties>
     503                <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     504                  <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jSaveRulesMI.text" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     505                </Property>
     506                <Property name="name" type="java.lang.String" value="jSaveRulesMI" noResource="true"/>
     507              </Properties>
     508              <Events>
     509                <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItem2ActionPerformed"/>
    435510              </Events>
    436511            </MenuItem>
     
    552627      </SubComponents>
    553628    </Container>
     629    <Container class="javax.swing.JPopupMenu" name="jPopupMenu1">
     630      <Properties>
     631        <Property name="name" type="java.lang.String" value="jPopupMenu1" noResource="true"/>
     632      </Properties>
     633
     634      <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout">
     635        <Property name="useNullLayout" type="boolean" value="true"/>
     636      </Layout>
     637      <SubComponents>
     638        <MenuItem class="javax.swing.JMenuItem" name="jMenuItem1">
     639          <Properties>
     640            <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
     641              <ResourceString bundle="connectionsframework/Bundle.properties" key="ConnectionsFrameworkView.jMenuItem1.text" replaceFormat="java.util.ResourceBundle.getBundle(&quot;{bundleNameSlashes}&quot;).getString(&quot;{key}&quot;)"/>
     642            </Property>
     643            <Property name="name" type="java.lang.String" value="jMenuItem1" noResource="true"/>
     644          </Properties>
     645          <Events>
     646            <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="jMenuItem1ActionPerformed"/>
     647          </Events>
     648        </MenuItem>
     649      </SubComponents>
     650    </Container>
    554651  </NonVisualComponents>
    555652  <Properties>
  • trunk/msCompareTransformationGUI/src/connectionsframework/ConnectionsFrameworkView.java

    r11 r12  
    55package connectionsframework;
    66
     7import connectionsframework.helpers.HelperAT;
     8import dataTransformation.framework.AttributePair;
     9import dataTransformation.peakList.general.attributeTransformations.AttributeTransformation;
    710import org.jdesktop.application.Action;
    811import org.jdesktop.application.ResourceMap;
     
    1316import java.awt.event.ActionListener;
    1417import java.io.File;
     18import java.util.ArrayList;
    1519import java.util.List;
    1620import java.util.ListIterator;
     21import java.util.Map;
    1722import javax.swing.DefaultComboBoxModel;
    1823import javax.swing.DefaultListModel;
     
    2126import javax.swing.JDialog;
    2227import javax.swing.JFrame;
    23 import javax.swing.ListModel;
    2428
    2529/**
     
    137141        jLabel9 = new javax.swing.JLabel();
    138142        jButton1 = new javax.swing.JButton();
     143        jCheckBox1 = new javax.swing.JCheckBox();
     144        jCheckBox2 = new javax.swing.JCheckBox();
     145        jButton2 = new javax.swing.JButton();
    139146        menuBar = new javax.swing.JMenuBar();
    140147        javax.swing.JMenu fileMenu = new javax.swing.JMenu();
    141148        jImportRulesFileMI = new javax.swing.JMenuItem();
     149        jMenuItem2 = new javax.swing.JMenuItem();
    142150        javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
    143151        javax.swing.JMenu helpMenu = new javax.swing.JMenu();
     
    148156        statusAnimationLabel = new javax.swing.JLabel();
    149157        progressBar = new javax.swing.JProgressBar();
     158        jPopupMenu1 = new javax.swing.JPopupMenu();
     159        jMenuItem1 = new javax.swing.JMenuItem();
    150160
    151161        mainPanel.setName("mainPanel"); // NOI18N
     
    196206            public Object getElementAt(int i) { return strings[i]; }
    197207        });
     208        jAddedConnectionsList.setComponentPopupMenu(jPopupMenu1);
    198209        jAddedConnectionsList.setName("jAddedConnectionsList"); // NOI18N
    199210        jScrollPane2.setViewportView(jAddedConnectionsList);
     
    214225        jRemoveConnectedCcB.setText(bundle.getString("ConnectionsFrameworkView.jRemoveConnectedCcB.text")); // NOI18N
    215226        jRemoveConnectedCcB.setName("jRemoveConnectedCcB"); // NOI18N
     227        jRemoveConnectedCcB.addActionListener(new java.awt.event.ActionListener() {
     228            public void actionPerformed(java.awt.event.ActionEvent evt) {
     229                jRemoveConnectedCcBActionPerformed(evt);
     230            }
     231        });
    216232
    217233        jScrollPane4.setName("jScrollPane4"); // NOI18N
     
    246262        jButton1.setText(bundle.getString("ConnectionsFrameworkView.jButton1.text")); // NOI18N
    247263        jButton1.setName("jAddButton"); // NOI18N
     264        jButton1.addActionListener(new java.awt.event.ActionListener() {
     265            public void actionPerformed(java.awt.event.ActionEvent evt) {
     266                jButton1ActionPerformed(evt);
     267            }
     268        });
     269
     270        jCheckBox1.setSelected(true);
     271        jCheckBox1.setText(bundle.getString("ConnectionsFrameworkView.jCheckBox1.text")); // NOI18N
     272        jCheckBox1.setName("jCheckBox1"); // NOI18N
     273        jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
     274            public void actionPerformed(java.awt.event.ActionEvent evt) {
     275                jCheckBox1ActionPerformed(evt);
     276            }
     277        });
     278
     279        jCheckBox2.setSelected(true);
     280        jCheckBox2.setText(bundle.getString("ConnectionsFrameworkView.jPrivateConnectionsCcB.text")); // NOI18N
     281        jCheckBox2.setToolTipText(bundle.getString("ConnectionsFrameworkView.jCheckBox2.toolTipText")); // NOI18N
     282        jCheckBox2.setName("jPrivateConnectionsCcB"); // NOI18N
     283        jCheckBox2.addActionListener(new java.awt.event.ActionListener() {
     284            public void actionPerformed(java.awt.event.ActionEvent evt) {
     285                jCheckBox2ActionPerformed(evt);
     286            }
     287        });
     288
     289        jButton2.setText(bundle.getString("ConnectionsFrameworkView.jButton2.text")); // NOI18N
     290        jButton2.setToolTipText(bundle.getString("ConnectionsFrameworkView.jButton2.toolTipText")); // NOI18N
     291        jButton2.setName("jButton2"); // NOI18N
     292        jButton2.addActionListener(new java.awt.event.ActionListener() {
     293            public void actionPerformed(java.awt.event.ActionEvent evt) {
     294                jButton2ActionPerformed(evt);
     295            }
     296        });
    248297
    249298        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
     
    283332                                        .addComponent(jNewAttributeNameTF, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))
    284333                                    .addComponent(jInputCcB)
    285                                     .addComponent(jOutputCcB)))
     334                                    .addComponent(jOutputCcB))
     335                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
     336                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
     337                                    .addGroup(jPanel1Layout.createSequentialGroup()
     338                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
     339                                            .addComponent(jLabel3)
     340                                            .addComponent(jRelationCB, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE)
     341                                            .addComponent(jCheckBox1))
     342                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
     343                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
     344                                            .addComponent(jRemoveConnectedCcB)
     345                                            .addComponent(jLabel4)
     346                                            .addGroup(jPanel1Layout.createSequentialGroup()
     347                                                .addComponent(jConnectionToCB, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
     348                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
     349                                                .addComponent(jButton1)
     350                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
     351                                                .addComponent(jButton2))))
     352                                    .addComponent(jCheckBox2)))
    286353                            .addComponent(jLabel6))
    287                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    288                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    289                             .addComponent(jLabel3)
    290                             .addComponent(jRelationCB, javax.swing.GroupLayout.PREFERRED_SIZE, 221, javax.swing.GroupLayout.PREFERRED_SIZE))
    291                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    292                         .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
    293                             .addComponent(jRemoveConnectedCcB)
    294                             .addComponent(jLabel4)
    295                             .addGroup(jPanel1Layout.createSequentialGroup()
    296                                 .addComponent(jConnectionToCB, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
    297                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    298                                 .addComponent(jButton1)))
    299                         .addContainerGap(439, Short.MAX_VALUE))))
     354                        .addContainerGap(326, Short.MAX_VALUE))))
    300355        );
    301356        jPanel1Layout.setVerticalGroup(
     
    314369                            .addComponent(jRelationCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    315370                            .addComponent(jConnectionToCB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
    316                             .addComponent(jButton1)))
     371                            .addComponent(jButton1)
     372                            .addComponent(jButton2)))
    317373                    .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
    318374                        .addComponent(jLabel3)
     
    326382                        .addGap(1, 1, 1)
    327383                        .addComponent(jLabel6))
    328                     .addComponent(jRemoveConnectedCcB))
     384                    .addComponent(jRemoveConnectedCcB)
     385                    .addGroup(jPanel1Layout.createSequentialGroup()
     386                        .addComponent(jCheckBox1)
     387                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
     388                        .addComponent(jCheckBox2)))
    329389                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    330390                .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
     
    370430        });
    371431        fileMenu.add(jImportRulesFileMI);
     432
     433        jMenuItem2.setText(bundle.getString("ConnectionsFrameworkView.jSaveRulesMI.text")); // NOI18N
     434        jMenuItem2.setName("jSaveRulesMI"); // NOI18N
     435        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
     436            public void actionPerformed(java.awt.event.ActionEvent evt) {
     437                jMenuItem2ActionPerformed(evt);
     438            }
     439        });
     440        fileMenu.add(jMenuItem2);
    372441
    373442        javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(connectionsframework.ConnectionsFrameworkApp.class).getContext().getActionMap(ConnectionsFrameworkView.class, this);
     
    424493        );
    425494
     495        jPopupMenu1.setName("jPopupMenu1"); // NOI18N
     496
     497        jMenuItem1.setText(bundle.getString("ConnectionsFrameworkView.jMenuItem1.text")); // NOI18N
     498        jMenuItem1.setName("jMenuItem1"); // NOI18N
     499        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
     500            public void actionPerformed(java.awt.event.ActionEvent evt) {
     501                jMenuItem1ActionPerformed(evt);
     502            }
     503        });
     504        jPopupMenu1.add(jMenuItem1);
     505
    426506        setComponent(mainPanel);
    427507        setMenuBar(menuBar);
     
    446526    }//GEN-LAST:event_jImportRulesFileMIActionPerformed
    447527
     528    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
     529         
     530        TransformationAddDialog transBox = null;
     531        if (transBox == null) {
     532            JFrame mainFrame = ConnectionsFrameworkApp.getApplication().getMainFrame();
     533            transBox = new TransformationAddDialog(mainFrame,true);
     534            transBox.setLocationRelativeTo(mainFrame);
     535        }
     536
     537        String transformationPrettyName = jRelationCB.getSelectedItem().toString();
     538        String newAttributeName = jNewAttributeNameTF.getText();
     539        String newProgramName = jNewProgramTF.getText();
     540        AttributePair to = null;
     541        if(jConnectionToCB.getSelectedItem() instanceof AttributePair) {
     542            to = (AttributePair)jConnectionToCB.getSelectedItem();
     543        }
     544       
     545        if(jInputCcB.isSelected()) {
     546            String header = "Setup properties of the " + transformationPrettyName + " transformation";
     547            Map<String,String> arguments = engine.attributeTransformationOptionsInput(transformationPrettyName, newAttributeName, newProgramName, to);
     548            transBox.setProperties(header,arguments);
     549            ConnectionsFrameworkApp.getApplication().show(transBox);
     550
     551            arguments = transBox.getTransformationArguments();
     552            engine.addAttributeTransformation(transformationPrettyName,arguments);
     553        }
     554
     555        if(jOutputCcB.isSelected()) {
     556            String header = "Setup properties of the " + transformationPrettyName + " transformation";
     557            Map<String,String> arguments = engine.attributeTransformationOptionsOutput(transformationPrettyName, newAttributeName, newProgramName, to);
     558            transBox.setProperties(header,arguments);
     559            ConnectionsFrameworkApp.getApplication().show(transBox);
     560
     561            arguments = transBox.getTransformationArguments();
     562            engine.addAttributeTransformation(transformationPrettyName,arguments);
     563        }
     564
     565        if(jOutputCcB.isSelected() && jInputCcB.isSelected()) {
     566            engine.addSelfCopy(newAttributeName,newProgramName);
     567        }
     568
     569        updateFields();
     570    }//GEN-LAST:event_jButton1ActionPerformed
     571
     572    private void jRemoveConnectedCcBActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jRemoveConnectedCcBActionPerformed
     573        updateFields();
     574    }//GEN-LAST:event_jRemoveConnectedCcBActionPerformed
     575
     576    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
     577        Object[] selectedItems = jAddedConnectionsList.getSelectedValues();
     578        ArrayList<AttributeTransformation> removeList = new ArrayList<AttributeTransformation>();
     579        for(int a = 0; a < selectedItems.length; a++) {
     580            HelperAT temp = (HelperAT) selectedItems[a];
     581            removeList.add(temp.getAttributeTransformation());
     582        }
     583
     584        engine.removeAddedTransformations(removeList);
     585        updateFields();
     586    }//GEN-LAST:event_jMenuItem1ActionPerformed
     587
     588    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed
     589        engine.restrictExpansions(jCheckBox1.isSelected());
     590    }//GEN-LAST:event_jCheckBox1ActionPerformed
     591
     592    private void jCheckBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox2ActionPerformed
     593        boolean makePrivate = jCheckBox2.isSelected();
     594        engine.setCreatePrivateTransformations(makePrivate);
     595    }//GEN-LAST:event_jCheckBox2ActionPerformed
     596
     597    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
     598        if(jInputCcB.isSelected()) {
     599            engine.addAttributeWithoutSource(jNewProgramTF.getText());
     600            updateFields();
     601        } else {
     602            statusMessageLabel.setText("Input not select cannot add transformations");
     603        }
     604    }//GEN-LAST:event_jButton2ActionPerformed
     605
     606    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
     607        javax.swing.JFileChooser jFileChooser = new javax.swing.JFileChooser();
     608
     609        statusMessageLabel.setText("pls wait till save is completed");
     610
     611        int returnVal = jFileChooser.showSaveDialog(ConnectionsFrameworkApp.getApplication().getMainFrame());
     612
     613         if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) {
     614            File file = jFileChooser.getSelectedFile();
     615            engine.saveAll(file);
     616            statusMessageLabel.setText("Save file Succesfull");
     617        } else {
     618            statusMessageLabel.setText("Save file cancelled by user.");
     619        }
     620    }//GEN-LAST:event_jMenuItem2ActionPerformed
     621
    448622    private void updateFields() {
    449         List<String> importedTF = engine.getImportedTransformations();
     623        List<HelperAT> importedTF = engine.getImportedTransformations();
    450624
    451625        //Add loaded in connections!!
    452626        DefaultListModel lm = new DefaultListModel();
    453627
    454         ListIterator<String> liTF = importedTF.listIterator();
     628        ListIterator<HelperAT> liTF = importedTF.listIterator();
    455629        while(liTF.hasNext()) {
    456630            lm.addElement(liTF.next());
     
    460634        //Add End points!!
    461635        DefaultComboBoxModel cbm = new DefaultComboBoxModel();
    462         liTF = engine.getEndPoints().listIterator();
     636        ListIterator<AttributePair> liAp = null;
     637        if(jRemoveConnectedCcB.isSelected()) {
     638            liAp = engine.getUnconnectedEndPoints().listIterator();
     639        } else {
     640            liAp = engine.getEndPoints().listIterator();
     641        }
     642        while(liAp.hasNext()) {
     643            cbm.addElement(liAp.next());
     644        }
     645        jConnectionToCB.setModel(cbm);
     646
     647        lm = new DefaultListModel();
     648        liAp = engine.getUnconnectedEndPoints().listIterator();
     649        while(liAp.hasNext()) {
     650            lm.addElement(liAp.next());
     651        }
     652        jToConnectPointsList.setModel(lm);
     653
     654        lm = new DefaultListModel();
     655        liTF = engine.getAddedTransformations().listIterator();
    463656        while(liTF.hasNext()) {
    464             cbm.addElement(liTF.next());
    465         }
    466         jConnectionToCB.setModel(cbm);
    467 
    468 
     657            lm.addElement(liTF.next());
     658        }
     659        jAddedConnectionsList.setModel(lm);
     660
     661        lm = new DefaultListModel();
     662        liAp = engine.getAddedAttributes().listIterator();
     663        while(liAp.hasNext()) {
     664            lm.addElement(liAp.next());
     665        }
     666        jAddedAttributes.setModel(lm);
    469667    }
    470668
     
    484682    private javax.swing.JList jAddedConnectionsList;
    485683    private javax.swing.JButton jButton1;
     684    private javax.swing.JButton jButton2;
     685    private javax.swing.JCheckBox jCheckBox1;
     686    private javax.swing.JCheckBox jCheckBox2;
    486687    private javax.swing.JComboBox jConnectionToCB;
    487688    private javax.swing.JList jExistingConnectionsList;
     
    496697    private javax.swing.JLabel jLabel8;
    497698    private javax.swing.JLabel jLabel9;
     699    private javax.swing.JMenuItem jMenuItem1;
     700    private javax.swing.JMenuItem jMenuItem2;
    498701    private javax.swing.JTextField jNewAttributeNameTF;
    499702    private javax.swing.JTextField jNewProgramTF;
    500703    private javax.swing.JCheckBox jOutputCcB;
    501704    private javax.swing.JPanel jPanel1;
     705    private javax.swing.JPopupMenu jPopupMenu1;
    502706    private javax.swing.JComboBox jRelationCB;
    503707    private javax.swing.JCheckBox jRemoveConnectedCcB;
  • trunk/msCompareTransformationGUI/src/connectionsframework/Engine.java

    r11 r12  
    66package connectionsframework;
    77
     8import connectionsframework.helpers.HelperAT;
    89import dataTransformation.framework.AttributeNode;
    910import dataTransformation.framework.AttributeNodeList;
     
    1516import dataTransformation.peakList.general.attributeTransformations.TransformationCopy;
    1617import dataTransformation.peakList.general.attributeTransformations.TransformationMinutesToSeconds;
     18import dataTransformation.peakList.general.attributeTransformations.TransformationNewIntensityAttributeFromPeakHullPoint;
     19import dataTransformation.peakList.general.attributeTransformations.TransformationNewMZAttributeFromPeakHullPoint;
     20import dataTransformation.peakList.general.attributeTransformations.TransformationNewRTAttributeFromPeakHullPoint;
     21import dataTransformation.peakList.general.attributeTransformations.TransformationNewScanAttributeFromPeakHullPoint;
    1722import dataTransformation.peakList.general.attributeTransformations.TransformationSecondsToMinutes;
    1823import dataTransformation.peakList.general.attributeTransformations.TwoAttributeTransformation;
     
    2732import java.util.Set;
    2833import loadData.LoadTransformationXML;
     34import saveData.SaveTransformationXML;
    2935
    3036/**
     
    3844    private AttributeNodeList attriNodeList = new AttributeNodeList();
    3945
     46    private AttributeNodeList addedAttriNodeList = new AttributeNodeList();
     47    private Set<AttributeTransformation> addedTransformations = new HashSet<AttributeTransformation>();
     48
     49    private boolean restrictExpansions = true;
     50    private boolean privateNewTransformations = true;
     51
     52
    4053    public void importTransformationFile(File file) {
    4154        importedFiles.add(file.getPath());
    4255        transformations = getTransformations(importedFiles);
    43         transformations = replaceOneAttributeTransformations(transformations);
     56//        transformations = replaceOneAttributeTransformations(transformations);
    4457        attriNodeList = createAttributeNodes(transformations);
     58    }
     59
     60    public void restrictExpansions(boolean re) {
     61        this.restrictExpansions = re;
    4562    }
    4663
     
    6279    }
    6380
    64     public List<String> getEndPoints() {
    65         List<String> result = new ArrayList<String>();
    66 
     81    public List<AttributePair> newAttributes() {
     82        ArrayList<AttributePair> result = new ArrayList<AttributePair>();
     83        result.addAll(addedAttriNodeList.getNodes());
     84        Collections.sort(result);
     85        return result;
     86    }
     87
     88    public List<AttributePair> getUnconnectedEndPoints() {
     89        Set<AttributePair> allEndPoints = new HashSet<AttributePair>();
     90        allEndPoints.addAll(getEndPoints());
     91
     92        List<AttributePair> connected = getConnectedEndPoints();
     93
     94        Iterator<AttributePair> itCon = connected.iterator();
     95        while(itCon.hasNext()) {
     96
     97            AttributePair ap = itCon.next();
     98
     99            if(allEndPoints.contains(ap)) {
     100                allEndPoints.remove(ap);
     101            }
     102        }
     103
     104        List<AttributePair> result = new ArrayList<AttributePair>();
     105        result.addAll(allEndPoints);
     106
     107        Collections.sort(result);
     108
     109        return result;
     110    }
     111
     112    public List<AttributePair> getEndPoints() {
     113        List<AttributePair> result = new ArrayList<AttributePair>();
     114
     115        HashSet<AttributePair> tempResults = new HashSet<AttributePair>();
    67116        Iterator<AttributePair> itAP = attriNodeList.getNodes().iterator();
    68117        while(itAP.hasNext()) {
    69118            AttributePair ap = itAP.next();
    70119            if(ap.isEndPointPair()) {
    71                 String niceLine = new String();
    72                 niceLine = niceLine + ap.getAttributeName() + " (" + ap.getProgramName() + ")";
    73                 result.add(niceLine);
    74             }
    75         }
     120                tempResults.add(ap);
     121            }
     122        }
     123
     124        result.addAll(tempResults);
    76125
    77126        Collections.sort(result);
     
    79128    }
    80129
    81     public List<String> getImportedTransformations() {
    82         List<String> result = new ArrayList<String>();
     130    public List<AttributePair> getAddedAttributes() {
     131        ArrayList<AttributePair> result = new ArrayList<AttributePair>();
     132        Iterator<AttributePair> itAP = addedAttriNodeList.getNodes().iterator();
     133        while(itAP.hasNext()) {
     134            AttributePair ap = itAP.next();
     135            if(!attriNodeList.contains(ap)) {
     136                result.add(ap);
     137            }
     138        }
     139       
     140        Collections.sort(result);
     141        return result;
     142    }
     143
     144    public List<AttributePair> getConnectedEndPoints() {
     145        List<AttributePair> result = new ArrayList<AttributePair>();
     146
     147        HashSet<AttributePair> tempResults = new HashSet<AttributePair>();
     148        Iterator<AttributePair> itAP = addedAttriNodeList.getNodes().iterator();
     149        while(itAP.hasNext()) {
     150            AttributePair ap = itAP.next();
     151            if(ap.isEndPointPair()) {
     152                tempResults.add(ap);
     153            }
     154        }
     155
     156        result.addAll(tempResults);
     157
     158        Collections.sort(result);
     159        return result;
     160    }
     161
     162    public List<HelperAT> getImportedTransformations() {
     163
     164        List<HelperAT> temp = new ArrayList<HelperAT>();
    83165
    84166        Iterator<AttributeTransformation> itAt = transformations.iterator();
    85167        while(itAt.hasNext()) {
    86             String relation = "";
    87 
    88             AttributeTransformation at = itAt.next();
    89 
    90             if(at.getSourceAttributes().size() == 1) {
    91                 AttributePair ap = at.getSourceAttributes().iterator().next();
    92                 relation = ap.getAttributeName() + "(" + ap.getProgramName() + ") --[";
    93             } else if (at.getSourceAttributes().size() > 1) {
    94                 Iterator<AttributePair> itAp = at.getSourceAttributes().iterator();
    95                 String program = "";
    96                 while(itAp.hasNext()) {
    97                     AttributePair ap = itAp.next();
    98                     program = ap.getProgramName();
    99 
    100                     if(relation.length() != 0) {
    101                         relation = relation + "," + ap.getAttributeName();
    102                     } else {
    103                         relation = relation + ap.getAttributeName();
    104                     }
    105                 }
    106                 relation = relation + "(" + program + ") --[";
    107             } else if (at.getSourceAttributes().size() == 0) {
    108                 relation = "no Source --[";
    109             }
    110 
    111             relation = relation + " " + at.getPrettyName() + " ]--> ";
    112 
    113             if(at.getResultAttribute().size() == 1) {
    114                 AttributePair ap = at.getResultAttribute().iterator().next();
    115                 relation = relation + ap.getAttributeName() + "(" + ap.getProgramName() + ")";
    116             } else {
    117                 relation = relation + "more then one output";
    118             }
    119 
    120             result.add(relation);
    121         }
    122 
    123         Collections.sort(result);
    124 
    125         return result;
    126     }
    127 
    128     public Set<AttributeTransformation> getTransformations(Set<String> fileNames) {
    129         HashSet<AttributeTransformation> result = new HashSet<AttributeTransformation>();
     168            HelperAT hat = new HelperAT(itAt.next());
     169            temp.add(hat);
     170        }
     171        Collections.sort(temp);
     172
     173        return temp;
     174    }
     175
     176    public List<HelperAT> getAddedTransformations() {
     177        List<HelperAT> temp = new ArrayList<HelperAT>();
     178
     179        Iterator<AttributeTransformation> itAt = addedTransformations.iterator();
     180        while(itAt.hasNext()) {
     181            HelperAT hat = new HelperAT(itAt.next());
     182            temp.add(hat);
     183        }
     184        Collections.sort(temp);
     185
     186        return temp;
     187    }
     188
     189//
     190//    private List<String> getTransformationText(Set<AttributeTransformation> transformations) {
     191//        List<String> result = new ArrayList<String>();
     192//
     193//        Iterator<AttributeTransformation> itAt = transformations.iterator();
     194//        while(itAt.hasNext()) {
     195//            String relation = "";
     196//
     197//            AttributeTransformation at = itAt.next();
     198//
     199//            if(at.getSourceAttributes().size() == 1) {
     200//                AttributePair ap = at.getSourceAttributes().iterator().next();
     201//                relation = ap.getAttributeName() + "(" + ap.getProgramName() + ") --[";
     202//            } else if (at.getSourceAttributes().size() > 1) {
     203//                Iterator<AttributePair> itAp = at.getSourceAttributes().iterator();
     204//                String program = "";
     205//                while(itAp.hasNext()) {
     206//                    AttributePair ap = itAp.next();
     207//                    program = ap.getProgramName();
     208//
     209//                    if(relation.length() != 0) {
     210//                        relation = relation + "," + ap.getAttributeName();
     211//                    } else {
     212//                        relation = relation + ap.getAttributeName();
     213//                    }
     214//                }
     215//                relation = relation + "(" + program + ") --[";
     216//            } else if (at.getSourceAttributes().size() == 0) {
     217//                relation = "no Source --[";
     218//            }
     219//
     220//            relation = relation + " " + at.getPrettyName() + " ]--> ";
     221//
     222//            if(at.getResultAttribute().size() == 1) {
     223//                AttributePair ap = at.getResultAttribute().iterator().next();
     224//                relation = relation + ap.getAttributeName() + "(" + ap.getProgramName() + ")";
     225//            } else {
     226//                relation = relation + "more then one output";
     227//            }
     228//
     229//            result.add(relation);
     230//        }
     231//
     232//        Collections.sort(result);
     233//
     234//        return result;
     235//    }
     236//
     237
     238
     239    private Set<AttributeTransformation> getTransformations(Set<String> fileNames) {
     240        Set<AttributeTransformation> result = new HashSet<AttributeTransformation>();
    130241
    131242        Iterator<String> itFiles = fileNames.iterator();
     
    136247            List<AttributeTransformation> lAT = ltXML.loadFile(itFiles.next());
    137248
    138             result.addAll(lAT);
    139         }
     249            result.addAll(replaceOneAttributeTransformations(lAT));
     250        }
     251        System.out.println("result.size: " + result.size());
     252
     253
     254//        for(int a = 0; a < result.size(); a++) {
     255//            AttributeTransformation atA = result.get(a);
     256//            for(int b = a +1; b < result.size(); b++) {
     257//                AttributeTransformation atB = result.get(b);
     258//
     259//                if(atA.equals(atB)) {
     260//
     261//                    System.out.println(atA.getTransformationType());
     262//
     263//                    if(atA instanceof TransformationCopy) {
     264//                        System.out.println("hashCodes: " + atA.hashCode() + " }{ " + atB.hashCode());
     265//                        System.out.println("Equals: " + atA.equals(atB));
     266//                    }
     267//                }
     268//            }
     269//        }
     270//        HashSet<AttributeTransformation> finalResult = new HashSet<AttributeTransformation>();
     271//        finalResult.addAll(result);
     272//
     273//        System.out.println("finalResult.size: " + finalResult.size());
     274
    140275        return result;
    141276    }
    142277
    143     private Set<AttributeTransformation> replaceOneAttributeTransformations(Set<AttributeTransformation> tfList) {
     278    /**
     279     *
     280     * @param prettyTransformationName
     281     * @param fromAttributeName
     282     * @param fromProgramName
     283     * @param to
     284     * @return
     285     */
     286    public Map<String,String> attributeTransformationOptionsInput(String prettyTransformationName, String fromAttributeName, String fromProgramName, AttributePair to) {
     287       
     288        AttributeTransformation at = AttributeTransformationList.getTransformationForPrettyName(prettyTransformationName);
     289        Map<String,String> arguments = at.getTransformationArguments();
     290
     291        Map<String,String> newArguments = new HashMap<String,String>();
     292
     293        if(fromProgramName.endsWith("Generated")) {
     294            fromProgramName.replace("Generated", "");
     295        }
     296
     297        Iterator<String> itAt = arguments.keySet().iterator();
     298        while(itAt.hasNext()) {
     299
     300            String attriName = itAt.next();
     301
     302            if(attriName.equalsIgnoreCase("newProgramName")) {
     303                newArguments.put(attriName, to.getProgramName());
     304            } else if(attriName.contains("programname") || attriName.contains("programName") || attriName.contains("ProgramName")) {
     305                newArguments.put(attriName, fromProgramName);
     306            }
     307            if(attriName.equalsIgnoreCase("newAttributeName")) {
     308                newArguments.put(attriName, to.getAttributeName());
     309            } else if (attriName.contains("attributename") || attriName.contains("attributeName") || attriName.contains("AttributeName")) {
     310                newArguments.put(attriName, fromAttributeName);
     311            }
     312        }
     313
     314        arguments.putAll(newArguments);
     315
     316        return arguments;
     317    }
     318   
     319    public Map<String,String> attributeTransformationOptionsOutput(String prettyTransformationName, String fromAttributeName, String fromProgramName, AttributePair to) {
     320       
     321        AttributeTransformation at = AttributeTransformationList.getTransformationForPrettyName(prettyTransformationName);
     322        Map<String,String> arguments = at.getTransformationArguments();
     323
     324        if(!fromProgramName.contains("Generated")) {
     325            fromProgramName = fromProgramName + "Generated";
     326        }
     327
     328        //replace end point with starter point!!
     329        if(to.isEndPointPair()) {
     330            String toProgramName = to.getProgramName().replace("Generated", "");
     331            AttributePair temp = new AttributePair();
     332            temp.setAttributeName(to.getAttributeName());
     333            temp.setProgramName(toProgramName);
     334
     335            if(attriNodeList.contains(temp)) {
     336                to = temp;
     337            }
     338        }
     339
     340        Map<String,String> newArguments = new HashMap<String,String>();
     341
     342        Iterator<String> itAt = arguments.keySet().iterator();
     343        while(itAt.hasNext()) {
     344
     345            String attriName = itAt.next();
     346
     347            if(attriName.equalsIgnoreCase("newProgramName")) {
     348                newArguments.put(attriName, fromProgramName);
     349            } else if(attriName.contains("programname") || attriName.contains("programName") || attriName.contains("ProgramName")) {
     350                newArguments.put(attriName, to.getProgramName());
     351            }
     352            if(attriName.equalsIgnoreCase("newAttributeName")) {
     353                newArguments.put(attriName, fromAttributeName);
     354            } else if (attriName.contains("attributename") || attriName.contains("attributeName") || attriName.contains("AttributeName")) {
     355                newArguments.put(attriName, to.getAttributeName());
     356            }
     357        }
     358
     359        arguments.putAll(newArguments);
     360
     361        return arguments;
     362    }
     363
     364    private Set<AttributeTransformation> replaceOneAttributeTransformations(List<AttributeTransformation> tfList) {
    144365        Set<AttributeTransformation> result = new HashSet<AttributeTransformation>();
    145366
     
    209430    }
    210431
    211     private AttributeNodeList createAttributeNodes(Set<AttributeTransformation> atList) {
    212         AttributeNodeList anl = new AttributeNodeList();
    213 
     432    private AttributeNodeList addTransformations(Set<AttributeTransformation> atList,  AttributeNodeList anl) {
    214433        Iterator<AttributeTransformation> itAt = atList.iterator();
    215434        while (itAt.hasNext()) {
     
    222441                if (anl.contains(ap)) {
    223442                    AttributeNode an = anl.getAttributeNode(ap);
    224                     an.AddTranformationFrom(at);
    225 
    226                     if (at.biDirectional() || at.getReverseTransformation() != null) {
    227                         an.AddTranformationTo(at.getReverseTransformation());
    228                     }
    229 
    230                     anl.addAttributeNode(an);
     443                    an.AddTranformation(at);
     444
     445                    if (at.getReverseTransformation() != null) {
     446                        an.AddTranformation(at.getReverseTransformation());
     447                    }
    231448
    232449                } else {
    233450                    AttributeNode an = new AttributeNode();
    234451                    an.setAttribute(ap);
    235                     an.AddTranformationFrom(at);
    236 
    237                     if (at.biDirectional() || at.getReverseTransformation() != null) {
    238                         an.AddTranformationTo(at.getReverseTransformation());
     452                    an.AddTranformation(at);
     453
     454                    if (at.getReverseTransformation() != null) {
     455                        an.AddTranformation(at.getReverseTransformation());
    239456                    }
    240457                    anl.addAttributeNode(an);
     
    248465                if (anl.contains(ap)) {
    249466                    AttributeNode an = anl.getAttributeNode(ap);
    250                     an.AddTranformationTo(at);
    251                     if (at.biDirectional() || at.getReverseTransformation() != null) {
    252                         an.AddTranformationFrom(at.getReverseTransformation());
    253                     }
    254                     anl.addAttributeNode(an);
    255 
     467                    an.AddTranformation(at);
     468                    if (at.getReverseTransformation() != null) {
     469                        an.AddTranformation(at.getReverseTransformation());
     470                    }
    256471                } else {
    257472                    AttributeNode an = new AttributeNode();
    258473                    an.setAttribute(ap);
    259                     an.AddTranformationTo(at);
    260                     if (at.biDirectional() || at.getReverseTransformation() != null) {
    261                         an.AddTranformationFrom(at.getReverseTransformation());
     474                    an.AddTranformation(at);
     475                    if (at.getReverseTransformation() != null) {
     476                        an.AddTranformation(at.getReverseTransformation());
    262477                    }
    263478                    anl.addAttributeNode(an);
     
    268483        return anl;
    269484    }
     485
     486    private AttributeNodeList createAttributeNodes(Set<AttributeTransformation> atList) {
     487        AttributeNodeList anl = new AttributeNodeList();
     488        anl = addTransformations(atList,anl);
     489        return anl;
     490    }
     491
     492    public void addAttributeTransformation(String prettyTransformationName, Map<String, String> arguments) {
     493
     494         AttributeTransformation at = AttributeTransformationList.getTransformationForPrettyName(prettyTransformationName);
     495         at.setOptions(arguments);
     496         at.setAssociatedProgram(getAssociatedProgramName(at.getSourceAttributes()));
     497
     498         Set<AttributeTransformation> atSet = new HashSet<AttributeTransformation>();
     499         atSet.add(at);
     500
     501         this.addTransformations(atSet, addedAttriNodeList);
     502         this.addedTransformations.add(at);
     503
     504         if(at.getSourceAttributes().size() == 1 && at.getResultAttribute().size() ==1) {
     505             AttributePair apFrom = at.getSourceAttributes().iterator().next();
     506             AttributePair apTo = null;
     507             if(attriNodeList.contains(apFrom)) {
     508                 apTo = at.getResultAttribute().iterator().next();
     509             } else {
     510                 apTo = apFrom;
     511                 apFrom = at.getResultAttribute().iterator().next();
     512             }
     513
     514             extendConnections(apFrom,apTo,at);
     515         }
     516    }
     517
     518    void addSelfCopy(String newAttributeName, String newProgramName) {
     519        TransformationCopy atc = new TransformationCopy();
     520
     521        Map<String,String> options = new HashMap<String,String>();
     522
     523        if(newProgramName.endsWith("Generated")) {
     524            newProgramName.replace("Generated", "");
     525        }
     526
     527        String toProgramName = newProgramName + "Generated";
     528
     529        options.put("programName", newProgramName);
     530        options.put("attributeName", newAttributeName);
     531
     532        options.put("newProgramName", toProgramName);
     533        options.put("newAttributeName", newAttributeName);
     534
     535        atc.setOptions(options);
     536
     537        Set<AttributeTransformation> atSet = new HashSet<AttributeTransformation>();
     538        atSet.add(atc);
     539
     540        this.addTransformations(atSet, addedAttriNodeList);
     541        this.addedTransformations.add(atc);
     542    }
     543
     544    private void extendConnections(AttributePair apStartPoint, AttributePair apToConnect, AttributeTransformation at) {
     545        Set<AttributeNode> list = attriNodeList.getCopyNodes(apStartPoint, 15);
     546
     547
     548        System.out.println("source: " + at.getSourceAttributes().iterator().next().toString());
     549        System.out.println("result: " + at.getResultAttribute().iterator().next().toString());
     550
     551        System.out.println("apStartPoint: " + apStartPoint.toString());
     552        System.out.println("apToConnect: " + apToConnect.toString());
     553
     554        Set<AttributeTransformation> toAddATs = new HashSet<AttributeTransformation>();
     555
     556        Iterator<AttributeNode> itAN = list.iterator();
     557        while (itAN.hasNext()) {
     558
     559            AttributeNode an = itAN.next();
     560            AttributePair apCopy = an.getAttribute();
     561            System.out.println("apCopy: " + apCopy.toString());
     562
     563            if(!apToConnect.isEndPointPair()) {
     564                if(apCopy.isEndPointPair()) {
     565
     566                    HashMap<String,String> newArguments = new HashMap<String,String>();
     567                    Map<String,String> arguments = at.getOptions();
     568                    Iterator<String> itKey = arguments.keySet().iterator();
     569                    while(itKey.hasNext()) {
     570                        String key = itKey.next();
     571                        String value = arguments.get(key);
     572
     573                        if(value.equals(apStartPoint.getAttributeName())) {
     574                            newArguments.put(key, apCopy.getAttributeName());
     575                        } else if(value.equals(apStartPoint.getProgramName())) {
     576                            newArguments.put(key, apCopy.getProgramName());
     577                        } else {
     578                            newArguments.put(key, value);
     579                        }
     580                    }
     581
     582                    AttributeTransformation atNew = AttributeTransformationList.getTransformationForName(at.getTransformationType());
     583                    atNew.setOptions(newArguments);
     584                    if(apToConnect.isEndPointPair()) {
     585                        atNew.setAssociatedProgram(getAssociatedProgramName(atNew.getSourceAttributes()));
     586                    } else {
     587                        atNew.setAssociatedProgram(apToConnect.getProgramName());
     588                    }
     589                    toAddATs.add(atNew);
     590                }
     591            } else if(apToConnect.isEndPointPair()) {
     592                if(!apCopy.isEndPointPair()) {
     593
     594                    HashMap<String,String> newArguments = new HashMap<String,String>();
     595                    Map<String,String> arguments = at.getOptions();
     596                    Iterator<String> itKey = arguments.keySet().iterator();
     597                    while(itKey.hasNext()) {
     598                        String key = itKey.next();
     599                        String value = arguments.get(key);
     600
     601                        if(value.equals(apStartPoint.getAttributeName())) {
     602                            newArguments.put(key, apCopy.getAttributeName());
     603                        } else if(value.equals(apStartPoint.getProgramName())) {
     604                            newArguments.put(key, apCopy.getProgramName());
     605                        } else {
     606                            newArguments.put(key, value);
     607                        }
     608                    }
     609
     610                    AttributeTransformation atNew = AttributeTransformationList.getTransformationForName(at.getTransformationType());
     611                    atNew.setOptions(newArguments);
     612
     613                    if(apToConnect.isEndPointPair()) {
     614                        atNew.setAssociatedProgram(getAssociatedProgramName(atNew.getSourceAttributes()));
     615                    } else {
     616                        atNew.setAssociatedProgram(apToConnect.getProgramName());
     617                    }
     618
     619                    toAddATs.add(atNew);
     620                }
     621            }
     622
     623            // Next level, only couple of selected type will be added!!
     624            // and only if the origional transformation is copy!!
     625            if(at instanceof TransformationCopy) {
     626                Set<AttributeNode> nextlvl = attriNodeList.getConnectedNodes(an.getAttribute(), true, false);
     627                Iterator<AttributeNode> itNextlvl = nextlvl.iterator();
     628                while (itNextlvl.hasNext()) {
     629
     630                    AttributeNode next = itNextlvl.next();
     631                    if (!list.contains(next)) {
     632                        AttributeTransformation att = attriNodeList.getTransformation(an.getAttribute(), next.getAttribute());
     633
     634                        if(att.isAssociatedTo(apToConnect.getProgramName())
     635                                && (att instanceof TransformationCopy
     636                                || att instanceof TransformationMinutesToSeconds
     637                                || att instanceof TransformationSecondsToMinutes
     638                                || !this.restrictExpansions)) {
     639                            if(apCopy.isEndPointPair() == apToConnect.isEndPointPair()) {
     640
     641                                HashMap<String,String> newArguments = new HashMap<String,String>();
     642                                Map<String,String> arguments = att.getOptions();
     643                                Iterator<String> itKey = arguments.keySet().iterator();
     644                                while(itKey.hasNext()) {
     645                                    String key = itKey.next();
     646                                    String value = arguments.get(key);
     647
     648                                    if(value.equals(apCopy.getAttributeName())) {
     649                                        newArguments.put(key, apToConnect.getAttributeName());
     650                                    } else if(value.equals(apCopy.getProgramName())) {
     651                                        newArguments.put(key, apToConnect.getProgramName());
     652                                    } else {
     653                                        newArguments.put(key, value);
     654                                    }
     655                                }
     656
     657                                AttributeTransformation atNew = AttributeTransformationList.getTransformationForName(att.getTransformationType());
     658                                atNew.setOptions(newArguments);
     659                               
     660                                if(apToConnect.isEndPointPair()) {
     661                                    atNew.setAssociatedProgram(getAssociatedProgramName(atNew.getSourceAttributes()));
     662                                } else {
     663                                    atNew.setAssociatedProgram(apToConnect.getProgramName());
     664                                }
     665
     666                                toAddATs.add(atNew);
     667                            }
     668                        }
     669                    }
     670                }
     671            }
     672        }
     673
     674        this.addTransformations(toAddATs, addedAttriNodeList);
     675        this.addedTransformations.addAll(toAddATs);
     676    }
     677
     678    public void addAttributeWithoutSource(String newProgramName) {
     679
     680        HashSet<AttributeTransformation> newAts = new HashSet<AttributeTransformation>();
     681
     682        Iterator<AttributeTransformation> itAt = transformations.iterator();
     683        while(itAt.hasNext()) {
     684
     685            AttributeTransformation at = itAt.next();
     686
     687            if(at.getSourceAttributes().size() == 0) {
     688                boolean add = true;
     689                Iterator<AttributePair> itAp = at.getResultAttribute().iterator();
     690                while(itAp.hasNext()) {
     691                    AttributePair ap = itAp.next();
     692
     693                    if(addedAttriNodeList.contains(ap)) {
     694                        add = false;
     695                    }
     696                }
     697
     698                if(this.restrictExpansions
     699                    && (at instanceof TransformationNewIntensityAttributeFromPeakHullPoint
     700                    || at instanceof TransformationNewMZAttributeFromPeakHullPoint
     701                    || at instanceof TransformationNewRTAttributeFromPeakHullPoint
     702                    || at instanceof TransformationNewScanAttributeFromPeakHullPoint)) {
     703                    add = false;
     704                }
     705
     706                if(add) {
     707                    AttributeTransformation atNew = AttributeTransformationList.getTransformationForName(at.getTransformationType());
     708                    atNew.setOptions(at.getOptions());
     709                    atNew.setAssociatedProgram(newProgramName);
     710                    newAts.add(atNew);
     711                }
     712            }
     713        }
     714
     715        addedTransformations.addAll(newAts);
     716        addTransformations(newAts, addedAttriNodeList);
     717    }
     718
     719    private String getAssociatedProgramName(Set<AttributePair> source) {
     720        String programName = null;
     721        Iterator<AttributePair> itAP = source.iterator();
     722        while(itAP.hasNext()) {
     723            AttributePair ap = itAP.next();
     724            if(programName == null) {
     725                programName = ap.getProgramName();
     726            } else if (programName.equalsIgnoreCase(ap.getProgramName())) {
     727                programName = AttributeTransformation.ANY_PROGRAM;
     728            }
     729        }
     730
     731        if(programName.contains("Generated")) {
     732            programName = programName.replace("Generated", "");
     733        }
     734
     735        return programName;
     736    }
     737
     738    void removeAddedTransformations(ArrayList<AttributeTransformation> removeList) {
     739        Iterator<AttributeTransformation> itAt = removeList.iterator();
     740        while(itAt.hasNext()) {
     741            AttributeTransformation at = itAt.next();
     742            addedTransformations.remove(at);
     743        }
     744
     745        addedAttriNodeList = new AttributeNodeList();
     746        addTransformations(addedTransformations, addedAttriNodeList);
     747    }
     748
     749    void setCreatePrivateTransformations(boolean makePrivate) {
     750        privateNewTransformations = makePrivate;
     751    }
     752
     753    void saveAll(File file) {
     754
     755        HashSet<AttributeTransformation> allTransformations = new HashSet<AttributeTransformation>();
     756        allTransformations.addAll(this.transformations);
     757        allTransformations.addAll(this.addedTransformations);
     758
     759        ArrayList<AttributeTransformation> saveList = new ArrayList<AttributeTransformation>();
     760        saveList.addAll(allTransformations);
     761
     762        SaveTransformationXML stXML = new SaveTransformationXML();
     763        stXML.saveTransformations(file, saveList);
     764    }
    270765}
Note: See TracChangeset for help on using the changeset viewer.