// ============================================================================ // // 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 org.talend.mdm.repository.ui.dialogs; import org.eclipse.jface.dialogs.IInputValidator; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbenchPartSite; import org.talend.mdm.repository.i18n.Messages; public class RenameViewDialog2 extends RenameViewDialog { private Text entityText; /** * Create the dialog. * @param parentShell */ public RenameViewDialog2(Shell parentShell, String dialogTitle, String dialogMessage, String initialValue, IInputValidator validator, IWorkbenchPartSite site) { super(parentShell, dialogTitle, dialogMessage, initialValue, validator , site); } @Override protected void createMainPart(Composite container) { GridLayout gridLayout = (GridLayout) container.getLayout(); gridLayout.numColumns = 3; Label label2 = new Label(container, SWT.NONE); label2.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); label2.setText(Messages.RenameViewDialog2_Name); entityText = new Text(container, SWT.SINGLE | SWT.BORDER | SWT.WRAP); GridData gd_text = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd_text.widthHint = 400; entityText.setLayoutData(gd_text); new Label(container, SWT.NONE); final Label internalLabel = new Label(container, SWT.NONE | SWT.WRAP); internalLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 3,1)); internalLabel.setText(Messages.RenameViewDialog2_InternalName); internalLabel.setForeground(Display.getCurrent().getSystemColor(SWT.COLOR_GRAY)); if(value != null) { entityText.setText(value); internalLabel.setText(Messages.bind(Messages.RenameViewDialog2_InternalNameX, value)); } entityText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { updateOkButtonState(); internalLabel.setText(Messages.bind(Messages.RenameViewDialog2_InternalNameX, entityText.getText())); } }); } private void updateOkButtonState() { if(okBtn != null) { if(validInput()) okBtn.setEnabled(true); else { okBtn.setEnabled(false); } } } protected boolean validInput() { String entityName = entityText.getText().trim(); if(entityName.equals(value)) return false; if(validator != null) { String validMsg = validator.isValid(entityName); if(validMsg != null) { errorMessageText.setText(validMsg); return false; } errorMessageText.setText(""); //$NON-NLS-1$ } return true; } @Override protected void saveDatas() { value = entityText.getText(); } }