Program: 149189
Project: 149189
Buggy source:
@Override protected void createCharacteristicsContent(FormToolkit toolkit,Composite charComposite){
  try {
    if (syncPlan == null)     syncPlan=new SyncronizationPlan();
    this.toolkit=toolkit;
    windowTarget=new DropTarget(this.getPartControl(),DND.DROP_MOVE);
    windowTarget.setTransfer(new Transfer[]{TextTransfer.getInstance()});
    windowTarget.addDropListener(new DCDropTargetListener());
    descriptionText=new LabelText(charComposite,"String_Node_Str");
    descriptionText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.description=descriptionText.getText().getText();
        markDirty();
      }
    }
);
    toolkit.createLabel(charComposite,"String_Node_Str");
    statusText=toolkit.createLabel(charComposite,"String_Node_Str");
    statusText.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false,1,1));
    toolkit.createLabel(charComposite,"String_Node_Str");
    Composite actionsComposite=toolkit.createComposite(charComposite,SWT.NONE);
    actionsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    actionsComposite.setLayout(new GridLayout(4,false));
    startFullButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    startFullButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    startFullButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        if (SynchronizationMainPage.this.isDirty()) {
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str","String_Node_Str");
          return;
        }
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.START_FULL));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        startRefreshTimer();
      }
    }
);
    startDifferentialButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    startDifferentialButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    startDifferentialButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        if (SynchronizationMainPage.this.isDirty()) {
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str","String_Node_Str");
          return;
        }
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.START_DIFFERENTIAL));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        startRefreshTimer();
      }
    }
);
    stopButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    stopButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    stopButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.STOP));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        refreshStatus();
      }
    }
);
    resetButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    resetButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    resetButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.RESET));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        refreshStatus();
      }
    }
);
    Composite remoteMDMGroup=this.getNewSectionComposite("String_Node_Str");
    remoteMDMGroup.setLayout(new GridLayout(1,true));
    Composite remoteMDMComposite=toolkit.createComposite(remoteMDMGroup,SWT.BORDER);
    remoteMDMComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    remoteMDMComposite.setLayout(new GridLayout(2,false));
    remoteSystemNameText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemNameText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemName=remoteSystemNameText.getText().getText();
        markDirty();
      }
    }
);
    remoteSystemURLText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemURLText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemURL=remoteSystemURLText.getText().getText();
        markDirty();
      }
    }
);
    remoteSystemUsernameText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemUsernameText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemUsername=remoteSystemUsernameText.getText().getText();
        markDirty();
      }
    }
);
    remoteSystemPasswordText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemPasswordText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemPassword=remoteSystemPasswordText.getText().getText();
        markDirty();
      }
    }
);
    Composite TISGroup=this.getNewSectionComposite("String_Node_Str");
    TISGroup.setLayout(new GridLayout(1,true));
    Composite TISComposite=toolkit.createComposite(TISGroup,SWT.BORDER);
    TISComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    TISComposite.setLayout(new GridLayout(2,false));
    tisURLText=new LabelText(TISComposite,"String_Node_Str");
    tisURLText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisURL=tisURLText.getText().getText();
        markDirty();
      }
    }
);
    tisUsernameText=new LabelText(TISComposite,"String_Node_Str");
    tisUsernameText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisUsername=tisUsernameText.getText().getText();
        markDirty();
      }
    }
);
    tisPasswordText=new LabelText(TISComposite,"String_Node_Str");
    tisPasswordText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisPassword=tisPasswordText.getText().getText();
        markDirty();
      }
    }
);
    tisParametersText=new LabelText(TISComposite,"String_Node_Str");
    tisParametersText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisParameters=tisParametersText.getText().getText();
        markDirty();
      }
    }
);
    Composite itemsGroup=this.getNewSectionComposite("String_Node_Str");
    itemsGroup.setLayout(new GridLayout(1,true));
    Composite itemsComposite=toolkit.createComposite(itemsGroup,SWT.BORDER);
    itemsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    itemsComposite.setLayout(new GridLayout(1,true));
    WSDataClusterPK[] xdcPKs=getPort().getDataClusterPKs(new WSRegexDataClusterPKs("String_Node_Str")).getWsDataClusterPKs();
    final List<String> dataClustersStrings=new ArrayList<String>();
    for (int i=0; i < xdcPKs.length; i++) {
      String name=xdcPKs[i].getPk();
      if (name != null && name != "String_Node_Str" && !"String_Node_Str".equals(name)) {
        dataClustersStrings.add(name);
      }
    }
    String[] itemsAlgorithmsStrings=getPort().getSynchronizationPlanItemsAlgorithms(new WSGetSynchronizationPlanItemsAlgorithms(new String[]{"String_Node_Str"})).getStrings();
    ComplexTableViewer itemsViewer=new ComplexTableViewer(Arrays.asList(itemsColumns),toolkit,itemsComposite);
    itemsViewer.setMainPage(this);
    ComplexTableViewerColumn complexTableViewerDataClusterColumn=itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str"));
    complexTableViewerDataClusterColumn.setComboValues(dataClustersStrings.toArray(new String[dataClustersStrings.size()]));
    final ComplexTableViewerColumn complexTableViewerModelConceptColumn=itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str"));
    itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str")).setComboValues(itemsAlgorithmsStrings);
    final ComplexTableViewerColumn complexTableViewerRevisionIdColumn=itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str"));
    itemsViewer.create();
    ((CCombo)complexTableViewerDataClusterColumn.getControl()).addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      SelectionEvent e){
      }
      public void widgetSelected(      SelectionEvent e){
        int selectedIndex=((CCombo)e.getSource()).getSelectionIndex();
        String clusterName=dataClustersStrings.get(selectedIndex);
        try {
          String[] concepts=getPort().getConceptsInDataCluster(new WSGetConceptsInDataCluster(new WSDataClusterPK(clusterName))).getStrings();
          complexTableViewerModelConceptColumn.setComboValues(concepts);
          ((CCombo)complexTableViewerModelConceptColumn.getControl()).setItems(complexTableViewerModelConceptColumn.getComboValues());
        }
 catch (        RemoteException e1) {
          e1.printStackTrace();
        }
      }
    }
);
    ((CCombo)complexTableViewerModelConceptColumn.getControl()).addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      SelectionEvent e){
      }
      public void widgetSelected(      SelectionEvent e){
        int selectedIndex=((CCombo)e.getSource()).getSelectionIndex();
        String[] concepts=complexTableViewerModelConceptColumn.getComboValues();
        String selectedConcept=concepts[selectedIndex];
        try {
          List<String> pRevisions=BusinessPortHelper.getPossibleItemsRevisionsInCurrentUniverse(getPort(),selectedConcept);
          complexTableViewerRevisionIdColumn.setComboValues(pRevisions.toArray(new String[pRevisions.size()]));
          ((CCombo)complexTableViewerRevisionIdColumn.getControl()).setItems(complexTableViewerRevisionIdColumn.getComboValues());
        }
 catch (        RemoteException e1) {
          e1.printStackTrace();
        }
      }
    }
);
    instancesViewer=itemsViewer.getViewer();
    instancesViewer.setInput(syncPlan.getItemsList());
    Composite objecstGroup=this.getNewSectionComposite("String_Node_Str",ExpandableComposite.TWISTIE);
    objecstGroup.setLayout(new GridLayout(1,true));
    String[] objectsAlgorithmStrings=getPort().getSynchronizationPlanObjectsAlgorithms(new WSGetSynchronizationPlanObjectsAlgorithms(new String[]{"String_Node_Str"})).getStrings();
    Composite objectsComposite=toolkit.createComposite(objecstGroup,SWT.BORDER);
    objectsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    objectsComposite.setLayout(new GridLayout(1,false));
    String[] xtentisObjects=getPort().getObjectsForSynchronizationPlans(new WSGetObjectsForSynchronizationPlans(new String[]{"String_Node_Str"})).getStrings();
    Map<String,String> objectsRevisionMap=BusinessPortHelper.getObjectsRevisionMapInCurrentUniverse(getPort());
    for (    String object : xtentisObjects) {
      Composite composite=toolkit.createComposite(objectsComposite,SWT.BORDER);
      composite.setLayoutData(new GridData(SWT.FILL,SWT.RIGHT,true,true,1,1));
      composite.setLayout(new GridLayout(2,false));
      Label label=toolkit.createLabel(composite,object,SWT.NULL);
      GridData data=new GridData(SWT.FILL,SWT.RIGHT,false,true,1,1);
      data.widthHint=120;
      label.setLayoutData(data);
      label.setFont(FontUtils.getBoldFont(label.getFont()));
      ComplexTableViewerColumn[] xtentisObjectColumns=new ComplexTableViewerColumn[]{new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str"),new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str"),new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str"),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",true,new String[]{},0)};
      ComplexTableViewer objectViewer=new ComplexTableViewer(Arrays.asList(xtentisObjectColumns),toolkit,composite);
      objectViewer.setMainPage(this);
      if (objectsRevisionMap.get(object) != null && objectsRevisionMap.get(object).length() > 0) {
        objectViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str")).setDefaultValue(objectsRevisionMap.get(object));
      }
      objectViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str")).setComboValues(objectsAlgorithmStrings);
      objectViewer.create();
      List<Line> objList=syncPlan.getXtentisObjectsList().get(object);
      if (objList == null) {
        objList=new ArrayList<Line>();
        syncPlan.getXtentisObjectsList().put(object,objList);
      }
      objectViewer.getViewer().setInput(objList);
      ((GridData)objectViewer.getViewer().getTable().getLayoutData()).heightHint=60;
      xtentisViewers.put(object,objectViewer);
    }
    refreshData();
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
@Override protected void createCharacteristicsContent(FormToolkit toolkit,Composite charComposite){
  try {
    if (syncPlan == null)     syncPlan=new SyncronizationPlan();
    this.toolkit=toolkit;
    windowTarget=new DropTarget(this.getPartControl(),DND.DROP_MOVE);
    windowTarget.setTransfer(new Transfer[]{TextTransfer.getInstance()});
    windowTarget.addDropListener(new DCDropTargetListener());
    descriptionText=new LabelText(charComposite,"String_Node_Str");
    descriptionText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.description=descriptionText.getText().getText();
        markDirty();
      }
    }
);
    toolkit.createLabel(charComposite,"String_Node_Str");
    statusText=toolkit.createLabel(charComposite,"String_Node_Str");
    statusText.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,false,1,1));
    toolkit.createLabel(charComposite,"String_Node_Str");
    Composite actionsComposite=toolkit.createComposite(charComposite,SWT.NONE);
    actionsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    actionsComposite.setLayout(new GridLayout(4,false));
    startFullButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    startFullButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    startFullButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        if (SynchronizationMainPage.this.isDirty()) {
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str","String_Node_Str");
          return;
        }
        if (remoteSystemURLText.getText().getText() == null || remoteSystemURLText.getText().getText().trim().equals("String_Node_Str")) {
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str","String_Node_Str");
          return;
        }
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.START_FULL));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        startRefreshTimer();
      }
    }
);
    startDifferentialButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    startDifferentialButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    startDifferentialButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        if (SynchronizationMainPage.this.isDirty()) {
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str","String_Node_Str");
          return;
        }
        if (remoteSystemURLText.getText().getText() == null || remoteSystemURLText.getText().getText().trim().equals("String_Node_Str")) {
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str","String_Node_Str");
          return;
        }
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.START_DIFFERENTIAL));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        startRefreshTimer();
      }
    }
);
    stopButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    stopButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    stopButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.STOP));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        refreshStatus();
      }
    }
);
    resetButton=toolkit.createButton(actionsComposite,"String_Node_Str",SWT.PUSH);
    resetButton.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,1,1));
    resetButton.addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      org.eclipse.swt.events.SelectionEvent e){
      }
      public void widgetSelected(      org.eclipse.swt.events.SelectionEvent e){
        WSSynchronizationPlan ws=(WSSynchronizationPlan)(getXObject().getWsObject());
        try {
          getPort().synchronizationPlanAction(new WSSynchronizationPlanAction(new WSSynchronizationPlanPK(ws.getName()),WSSynchronizationPlanActionCode.RESET));
        }
 catch (        RemoteException ex) {
          ex.printStackTrace();
          MessageDialog.openError(SynchronizationMainPage.this.getSite().getShell(),"String_Node_Str",ex.getLocalizedMessage());
        }
        refreshStatus();
      }
    }
);
    Composite remoteMDMGroup=this.getNewSectionComposite("String_Node_Str");
    remoteMDMGroup.setLayout(new GridLayout(1,true));
    Composite remoteMDMComposite=toolkit.createComposite(remoteMDMGroup,SWT.BORDER);
    remoteMDMComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    remoteMDMComposite.setLayout(new GridLayout(2,false));
    remoteSystemNameText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemNameText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemName=remoteSystemNameText.getText().getText();
        markDirty();
      }
    }
);
    remoteSystemURLText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemURLText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemURL=remoteSystemURLText.getText().getText();
        markDirty();
      }
    }
);
    remoteSystemUsernameText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemUsernameText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemUsername=remoteSystemUsernameText.getText().getText();
        markDirty();
      }
    }
);
    remoteSystemPasswordText=new LabelText(remoteMDMComposite,"String_Node_Str");
    remoteSystemPasswordText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.remoteSystemPassword=remoteSystemPasswordText.getText().getText();
        markDirty();
      }
    }
);
    Composite TISGroup=this.getNewSectionComposite("String_Node_Str");
    TISGroup.setLayout(new GridLayout(1,true));
    Composite TISComposite=toolkit.createComposite(TISGroup,SWT.BORDER);
    TISComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    TISComposite.setLayout(new GridLayout(2,false));
    tisURLText=new LabelText(TISComposite,"String_Node_Str");
    tisURLText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisURL=tisURLText.getText().getText();
        markDirty();
      }
    }
);
    tisUsernameText=new LabelText(TISComposite,"String_Node_Str");
    tisUsernameText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisUsername=tisUsernameText.getText().getText();
        markDirty();
      }
    }
);
    tisPasswordText=new LabelText(TISComposite,"String_Node_Str");
    tisPasswordText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisPassword=tisPasswordText.getText().getText();
        markDirty();
      }
    }
);
    tisParametersText=new LabelText(TISComposite,"String_Node_Str");
    tisParametersText.getText().addModifyListener(new ModifyListener(){
      public void modifyText(      ModifyEvent e){
        if (refreshing)         return;
        syncPlan.tisParameters=tisParametersText.getText().getText();
        markDirty();
      }
    }
);
    Composite itemsGroup=this.getNewSectionComposite("String_Node_Str");
    itemsGroup.setLayout(new GridLayout(1,true));
    Composite itemsComposite=toolkit.createComposite(itemsGroup,SWT.BORDER);
    itemsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    itemsComposite.setLayout(new GridLayout(1,true));
    WSDataClusterPK[] xdcPKs=getPort().getDataClusterPKs(new WSRegexDataClusterPKs("String_Node_Str")).getWsDataClusterPKs();
    final List<String> dataClustersStrings=new ArrayList<String>();
    for (int i=0; i < xdcPKs.length; i++) {
      String name=xdcPKs[i].getPk();
      if (name != null && name != "String_Node_Str" && !"String_Node_Str".equals(name)) {
        dataClustersStrings.add(name);
      }
    }
    String[] itemsAlgorithmsStrings=getPort().getSynchronizationPlanItemsAlgorithms(new WSGetSynchronizationPlanItemsAlgorithms(new String[]{"String_Node_Str"})).getStrings();
    ComplexTableViewer itemsViewer=new ComplexTableViewer(Arrays.asList(itemsColumns),toolkit,itemsComposite);
    itemsViewer.setMainPage(this);
    ComplexTableViewerColumn complexTableViewerDataClusterColumn=itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str"));
    complexTableViewerDataClusterColumn.setComboValues(dataClustersStrings.toArray(new String[dataClustersStrings.size()]));
    final ComplexTableViewerColumn complexTableViewerModelConceptColumn=itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str"));
    itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str")).setComboValues(itemsAlgorithmsStrings);
    final ComplexTableViewerColumn complexTableViewerRevisionIdColumn=itemsViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str"));
    itemsViewer.create();
    ((CCombo)complexTableViewerDataClusterColumn.getControl()).addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      SelectionEvent e){
      }
      public void widgetSelected(      SelectionEvent e){
        int selectedIndex=((CCombo)e.getSource()).getSelectionIndex();
        String clusterName=dataClustersStrings.get(selectedIndex);
        try {
          String[] concepts=getPort().getConceptsInDataCluster(new WSGetConceptsInDataCluster(new WSDataClusterPK(clusterName))).getStrings();
          complexTableViewerModelConceptColumn.setComboValues(concepts);
          ((CCombo)complexTableViewerModelConceptColumn.getControl()).setItems(complexTableViewerModelConceptColumn.getComboValues());
        }
 catch (        RemoteException e1) {
          e1.printStackTrace();
        }
      }
    }
);
    ((CCombo)complexTableViewerModelConceptColumn.getControl()).addSelectionListener(new SelectionListener(){
      public void widgetDefaultSelected(      SelectionEvent e){
      }
      public void widgetSelected(      SelectionEvent e){
        int selectedIndex=((CCombo)e.getSource()).getSelectionIndex();
        String[] concepts=complexTableViewerModelConceptColumn.getComboValues();
        String selectedConcept=concepts[selectedIndex];
        try {
          List<String> pRevisions=BusinessPortHelper.getPossibleItemsRevisionsInCurrentUniverse(getPort(),selectedConcept);
          complexTableViewerRevisionIdColumn.setComboValues(pRevisions.toArray(new String[pRevisions.size()]));
          ((CCombo)complexTableViewerRevisionIdColumn.getControl()).setItems(complexTableViewerRevisionIdColumn.getComboValues());
        }
 catch (        RemoteException e1) {
          e1.printStackTrace();
        }
      }
    }
);
    instancesViewer=itemsViewer.getViewer();
    instancesViewer.setInput(syncPlan.getItemsList());
    Composite objecstGroup=this.getNewSectionComposite("String_Node_Str",ExpandableComposite.TWISTIE);
    objecstGroup.setLayout(new GridLayout(1,true));
    String[] objectsAlgorithmStrings=getPort().getSynchronizationPlanObjectsAlgorithms(new WSGetSynchronizationPlanObjectsAlgorithms(new String[]{"String_Node_Str"})).getStrings();
    Composite objectsComposite=toolkit.createComposite(objecstGroup,SWT.BORDER);
    objectsComposite.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true,1,1));
    objectsComposite.setLayout(new GridLayout(1,false));
    String[] xtentisObjects=getPort().getObjectsForSynchronizationPlans(new WSGetObjectsForSynchronizationPlans(new String[]{"String_Node_Str"})).getStrings();
    Map<String,String> objectsRevisionMap=BusinessPortHelper.getObjectsRevisionMapInCurrentUniverse(getPort());
    for (    String object : xtentisObjects) {
      Composite composite=toolkit.createComposite(objectsComposite,SWT.BORDER);
      composite.setLayoutData(new GridData(SWT.FILL,SWT.RIGHT,true,true,1,1));
      composite.setLayout(new GridLayout(2,false));
      Label label=toolkit.createLabel(composite,object,SWT.NULL);
      GridData data=new GridData(SWT.FILL,SWT.RIGHT,false,true,1,1);
      data.widthHint=120;
      label.setLayoutData(data);
      label.setFont(FontUtils.getBoldFont(label.getFont()));
      ComplexTableViewerColumn[] xtentisObjectColumns=new ComplexTableViewerColumn[]{new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str"),new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str"),new ComplexTableViewerColumn("String_Node_Str",true,"String_Node_Str","String_Node_Str"),new ComplexTableViewerColumn("String_Node_Str",false,"String_Node_Str","String_Node_Str","String_Node_Str",true,new String[]{},0)};
      ComplexTableViewer objectViewer=new ComplexTableViewer(Arrays.asList(xtentisObjectColumns),toolkit,composite);
      objectViewer.setMainPage(this);
      if (objectsRevisionMap.get(object) != null && objectsRevisionMap.get(object).length() > 0) {
        objectViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str")).setDefaultValue(objectsRevisionMap.get(object));
      }
      objectViewer.getColumn(new ComplexTableViewerColumn("String_Node_Str")).setComboValues(objectsAlgorithmStrings);
      objectViewer.create();
      List<Line> objList=syncPlan.getXtentisObjectsList().get(object);
      if (objList == null) {
        objList=new ArrayList<Line>();
        syncPlan.getXtentisObjectsList().put(object,objList);
      }
      objectViewer.getViewer().setInput(objList);
      ((GridData)objectViewer.getViewer().getTable().getLayoutData()).heightHint=60;
      xtentisViewers.put(object,objectViewer);
    }
    refreshData();
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}