// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package com.amalto.workbench.editors; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.text.ITextListener; import org.eclipse.jface.text.TextEvent; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.widgets.FormToolkit; import com.amalto.workbench.i18n.Messages; import com.amalto.workbench.providers.XObjectEditorInput; import com.amalto.workbench.webservices.WSDataCluster; public class DataClusterMainPage extends AMainPageV2 implements ITextListener { private static Log log = LogFactory.getLog(DataClusterMainPage.class); protected Text descriptionText; // protected Combo dataClusterTypeCombo; /* * protected Composite stemmerGroup; protected Button useStemming; protected Combo languageCombo; protected Button * singleRoot; protected Button partOfSpeechSingleWord; protected Button rootConsistency; protected Button * accentedWords; protected Button compoundWords; protected Button spellingCorrection; protected Button * phoneticCorrection; protected Button partOfSpeechCompoundWords; protected Button synonymInformation; protected * Button stopWords; protected Button typingErrors; protected Button optimizeQueryResult; */ protected boolean refreshing = false; protected boolean comitting = false; public DataClusterMainPage(FormEditor editor) { super(editor, DataClusterMainPage.class.getName(), Messages.DataClusterMainPage_DataContainer + ((XObjectEditorInput) editor.getEditorInput()).getName()); } @Override protected void createCharacteristicsContent(FormToolkit toolkit, Composite mainComposite) { try { // description Label descriptionLabel = toolkit.createLabel(mainComposite, Messages.DataClusterMainPage_Description, SWT.NULL); descriptionLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true, 1, 1)); descriptionText = toolkit.createText(mainComposite, "", SWT.BORDER);//$NON-NLS-1$ descriptionText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); ((GridData) descriptionText.getLayoutData()).minimumHeight = 30; descriptionText.addModifyListener(this); /* * Label dataClusterTypeLabel = toolkit.createLabel(charComposite, "Data Cluster Type", SWT.NULL); * dataClusterTypeLabel.setLayoutData( new GridData(SWT.FILL,SWT.FILL,false,true,1,1) ); */ /* * dataClusterTypeCombo = new Combo(charComposite,SWT.READ_ONLY |SWT.DROP_DOWN|SWT.SINGLE); * dataClusterTypeCombo.setLayoutData( new GridData(SWT.FILL,SWT.FILL,false,true,1,1) ); * dataClusterTypeCombo.add("Items"); dataClusterTypeCombo.add("Cache"); * dataClusterTypeCombo.addModifyListener(this); */ /* * useStemming = toolkit.createButton(charComposite,"Use Stemming",SWT.TOGGLE | SWT.TRAIL); * useStemming.setLayoutData( new GridData(SWT.LEAD,SWT.FILL,false,true,1,1) ); * useStemming.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { * DataClusterMainPage.this.stemmerGroup.setEnabled(DataClusterMainPage.this.useStemming.getSelection()); * ((Section * )DataClusterMainPage.this.stemmerGroup.getParent()).setExpanded(DataClusterMainPage.this.useStemming * .getSelection()); if (DataClusterMainPage.this.useStemming.getSelection()) { * useStemming.setText("Stemming Enabled"); } else { useStemming.setText("Stemming Disabled"); } * * if (! DataClusterMainPage.this.refreshing) markDirty(); }; }); */ /* * //Stemmer Characteristics stemmerGroup = this.getNewSectionComposite("Stemmer Characteristics"); * stemmerGroup.setLayout(new GridLayout(2,true)); * * Label languageLabel = toolkit.createLabel(stemmerGroup, "Language", SWT.NULL); * languageLabel.setLayoutData( new GridData(SWT.FILL,SWT.FILL,false,true,1,1) ); languageCombo = new * Combo(stemmerGroup,SWT.READ_ONLY |SWT.DROP_DOWN|SWT.SINGLE); languageCombo.setLayoutData( new * GridData(SWT.FILL,SWT.FILL,false,false,1,1) ); languageCombo.add("en"); languageCombo.add("fr"); * languageCombo.addModifyListener(this); * * singleRoot = toolkit.createButton( stemmerGroup, "Single Root", SWT.CHECK | SWT.LEAD ); * singleRoot.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,2,1)); * singleRoot.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); partOfSpeechSingleWord = toolkit.createButton( stemmerGroup, * "Part Of Speech Single Word", SWT.CHECK | SWT.LEAD ); partOfSpeechSingleWord.setLayoutData(new * GridData(SWT.FILL,SWT.FILL,false,true,2,1)); partOfSpeechSingleWord.addSelectionListener(new * SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; * public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! * DataClusterMainPage.this.refreshing) markDirty(); }; }); rootConsistency = toolkit.createButton( * stemmerGroup, "Root Consistency", SWT.CHECK | SWT.LEAD ); rootConsistency.setLayoutData(new * GridData(SWT.FILL,SWT.FILL,false,true,2,1)); rootConsistency.addSelectionListener(new SelectionListener() * { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); accentedWords = toolkit.createButton( stemmerGroup, "Accented Words", SWT.CHECK | * SWT.LEAD ); accentedWords.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,2,1)); * accentedWords.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); compoundWords = toolkit.createButton( stemmerGroup, "Compound Words", SWT.CHECK | * SWT.LEAD ); compoundWords.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,2,1)); * compoundWords.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); spellingCorrection = toolkit.createButton( stemmerGroup, "Spelling Correction", * SWT.CHECK | SWT.LEAD ); spellingCorrection.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,2,1)); * spellingCorrection.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); phoneticCorrection = toolkit.createButton( stemmerGroup, "Phonetic Correction", * SWT.CHECK | SWT.LEAD ); phoneticCorrection.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,2,1)); * phoneticCorrection.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); partOfSpeechCompoundWords = toolkit.createButton( stemmerGroup, * "Part Of Speech Compound Words", SWT.CHECK | SWT.LEAD ); partOfSpeechCompoundWords.setLayoutData(new * GridData(SWT.FILL,SWT.FILL,false,true,2,1)); partOfSpeechCompoundWords.addSelectionListener(new * SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; * public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! * DataClusterMainPage.this.refreshing) markDirty(); }; }); synonymInformation = toolkit.createButton( * stemmerGroup, "Synonym Information", SWT.CHECK | SWT.LEAD ); synonymInformation.setLayoutData(new * GridData(SWT.FILL,SWT.FILL,false,true,2,1)); synonymInformation.addSelectionListener(new * SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; * public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! * DataClusterMainPage.this.refreshing) markDirty(); }; }); stopWords = toolkit.createButton( stemmerGroup, * "Stop Words", SWT.CHECK | SWT.LEAD ); stopWords.setLayoutData(new * GridData(SWT.FILL,SWT.FILL,false,true,2,1)); stopWords.addSelectionListener(new SelectionListener() { * public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); typingErrors = toolkit.createButton( stemmerGroup, "Typing Errors", SWT.CHECK | * SWT.LEAD ); typingErrors.setLayoutData(new GridData(SWT.FILL,SWT.FILL,false,true,2,1)); * typingErrors.addSelectionListener(new SelectionListener() { public void * widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; public void * widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! DataClusterMainPage.this.refreshing) * markDirty(); }; }); optimizeQueryResult = toolkit.createButton( stemmerGroup, "Optimize Query Results", * SWT.CHECK | SWT.LEAD ); optimizeQueryResult.setLayoutData(new * GridData(SWT.FILL,SWT.FILL,false,true,2,1)); optimizeQueryResult.addSelectionListener(new * SelectionListener() { public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {}; * public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) { if (! * DataClusterMainPage.this.refreshing) markDirty(); }; }); */ refreshData(); } catch (Exception e) { log.error(e.getMessage(), e); } }// createCharacteristicsContent @Override protected void refreshData() { try { if (this.comitting) { return; } this.refreshing = true; WSDataCluster wsObject = (WSDataCluster) (getXObject().getWsObject()); descriptionText.setText(wsObject.getDescription() == null ? "" : wsObject.getDescription());//$NON-NLS-1$ /* * if (wsObject.getWSDataClusterType().equals(WSDataClusterType.CACHE)) dataClusterTypeCombo.select(1); else * dataClusterTypeCombo.select(0); */ /* * boolean doStemming = ! ("0100".equals(wsObject.getStemmer())); useStemming.setSelection(doStemming); if * (doStemming) { useStemming.setText("Stemming Enabled"); } else { * useStemming.setText("Stemming Disabled"); } stemmerGroup.setEnabled(doStemming); * ((Section)DataClusterMainPage.this.stemmerGroup.getParent()).setExpanded(doStemming); * * String language = wsObject.getStemmer().substring(0,2); if ("fr".equals(language)) * languageCombo.select(1); else languageCombo.select(0); * * if (useStemming.getSelection()){ String vals = * wsObject.getStemmer().substring(2,wsObject.getStemmer().length()); int val = Integer.parseInt(vals); * singleRoot.setSelection((val & (1 << 0)) == (1 << 0)); partOfSpeechSingleWord.setSelection((val & (1 << * 1)) == (1 << 1)); rootConsistency.setSelection((val & (1 << 2)) == (1 << 2)); * accentedWords.setSelection((val & (1 << 3)) == (1 << 3)); compoundWords.setSelection((val & (1 << 4)) == * (1 << 4)); spellingCorrection.setSelection((val & (1 << 5)) == (1 << 5)); * phoneticCorrection.setSelection((val & (1 << 6)) == (1 << 6)); * partOfSpeechCompoundWords.setSelection((val & (1 << 8)) == (1 << 8)); * synonymInformation.setSelection((val & (1 << 9)) == (1 << 9)); stopWords.setSelection((val & (1 << 10)) * == (1 << 10)); typingErrors.setSelection((val & (1 << 11)) == (1 << 11)); * optimizeQueryResult.setSelection((val & (1 << 12)) == (1 << 12)); * * } */ this.refreshing = false; } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(this.getSite().getShell(), Messages.DataClusterMainPage_ErrorRefreshingPage, Messages.DataClusterMainPage_ErrorRefreshingPageXX + e.getLocalizedMessage()); } } @Override protected void commit() { try { if (this.refreshing) { return; } this.comitting = true; WSDataCluster wsObject = (WSDataCluster) (getXObject().getWsObject()); wsObject.setDescription(descriptionText.getText()); /* * if ("Cache".equals(dataClusterTypeCombo.getText())) * wsObject.setWSDataClusterType(WSDataClusterType.CACHE); else * wsObject.setWSDataClusterType(WSDataClusterType.ITEMS); */ /* * wsObject.setWSDataClusterType(WSDataClusterType.ITEMS); * * wsObject.setWSSpellerRefreshPeriodInSeconds(0); if (!useStemming.getSelection()) * wsObject.setStemmer("0100"); else { String s=languageCombo.getText(); int i=0; if * (singleRoot.getSelection()) i+=1; if (partOfSpeechSingleWord.getSelection()) i+=2; if * (rootConsistency.getSelection()) i+=4; if (accentedWords.getSelection()) i+=8; if * (compoundWords.getSelection()) i+=16; if (spellingCorrection.getSelection()) i+=32; if * (phoneticCorrection.getSelection()) i+=64; if (partOfSpeechCompoundWords.getSelection()) i+=256; if * (synonymInformation.getSelection()) i+=512; if (stopWords.getSelection()) i+=1024; if * (typingErrors.getSelection()) i+=2048; if (optimizeQueryResult.getSelection()) i+=4096; s+=""+i; * wsObject.setStemmer(s); } */ this.comitting = false; } catch (Exception e) { log.error(e.getMessage(), e); MessageDialog.openError(this.getSite().getShell(), Messages.DataClusterMainPage_ErrorCommitingPage, Messages.DataClusterMainPage_ErrorCommitingPageXX + e.getLocalizedMessage()); } } @Override protected void createActions() { } public void textChanged(TextEvent event) { if (this.refreshing) { return; } markDirty(); } @Override public void modifyText(ModifyEvent e) { if (this.refreshing) { return; } super.modifyText(e); } /* * private void hookContextMenu(TreeViewer viewer) { } * * private void fillContextMenu(IMenuManager manager) { } */ @Override public void dispose() { super.dispose(); } }