2011-03-30 55 views
0

我正在使用eclipse 3.6並使用java 6開發RCP應用程序。 我正在使用該部分並嘗試讓該應用程序能夠添加新的n部分。那之後我需要現場的文字。用戶可以在視圖中添加新的部分嗎?

現在用戶可以看到一個部分。我需要他能夠添加一個n部分,然後在stopRouteStreet字段中寫入文本。我想閱讀所有在此字段中編寫的文本。

任何想法如何做到這一點?

這裏是我的代碼

Section sectionStop = toolkit.createSection(form.getBody(), Section.DESCRIPTION|Section.TWISTIE|Section.TITLE_BAR);   
td = new TableWrapData(TableWrapData.FILL); 
td.colspan = 2; 
sectionStop.setLayoutData(td); 
sectionStop.addExpansionListener(new ExpansionAdapter() { 
    public void expansionStateChanged(ExpansionEvent e) { 
     form.reflow(true); 
    } 
}); 

sectionStop.setText(Messages.SearchMapView_endPoint); //$NON-NLS-1$ 

Composite sectionClientStop = toolkit.createComposite(sectionStop); 
sectionClientStop.setLayout(new GridLayout()); 

final Composite stopComposite = toolkit.createComposite(sectionClientStop, SWT.NONE); 
final GridLayout gridLayoutStop = new GridLayout(); 
gridLayoutStop.numColumns = 2; 
stopComposite.setLayout(gridLayoutStop); 
toolkit.createLabel(stopComposite, Messages.SearchMapView_Street); 
stopRouteStreet = toolkit.createText(stopComposite, "", SWT.BORDER); //$NON-NLS-1$ 
sectionStop.setClient(sectionClientStop); 

回答

1

你需要一個全局變量(一個HashMap會做),可以節省每個新創建科和文本控件之間的映射。

// define global field 

HashMap <Section, Text> dynamicControls = new HashMap <Section, Text>(); 

// after you create the text field, save the newly created Text field 
.... 
... 

dynamicControls.put(section, text); 

// Later when you need to read the values in all the text fields 
for(Section s: dynamicControls.keySet()){ 
     Text textField = dynamicControls.get(s); 
     System.out.println(textField.getText()); 
} 
相關問題