/**
* This file is part of Archiv-Editor.
*
* The software Archiv-Editor serves as a client user interface for working with
* the Person Data Repository. See: pdr.bbaw.de
*
* The software Archiv-Editor was developed at the Berlin-Brandenburg Academy
* of Sciences and Humanities, Jägerstr. 22/23, D-10117 Berlin.
* www.bbaw.de
*
* Copyright (C) 2010-2013 Berlin-Brandenburg Academy
* of Sciences and Humanities
*
* The software Archiv-Editor was developed by @author: Christoph Plutte.
*
* Archiv-Editor is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Archiv-Editor is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Archiv-Editor.
* If not, see <http://www.gnu.org/licenses/lgpl-3.0.html>.
*/
package org.bbaw.pdr.ae.aeimport.importWizard;
import org.bbaw.pdr.ae.common.NLMessages;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusEvent;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Text;
/** view page for solving provider name conflicts.
* if an imported classification has the same name as one which exists before
* then the page opens and one can override or rename the conflicting classifications.
* @author Christoph Plutte
*
*/
public class ImportWizardProviderConflictPage extends WizardPage
{
/** override button.*/
private Button _overrideButton;
/** new provider name.*/
private String _newName;
/** new provider name text.*/
private Text _newNameText;
/** boolean override.*/
private boolean _override = false;
/** instance of import wizard.*/
private ImportWizard _importWizard;
/** constructor.
* @param pageName page name.
*/
protected ImportWizardProviderConflictPage(final String pageName)
{
super(pageName);
setTitle(NLMessages.getString("ImportWizard_provider_conflict_title"));
setDescription(NLMessages.getString("ImportWizard_provider_conflict_message"));
}
/** create control.
* @param parent parent composite.
* @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
*/
public final void createControl(final Composite parent)
{
_importWizard = (ImportWizard) getWizard();
Composite composite = new Composite(parent, SWT.NONE);
GridLayout layout = new GridLayout();
layout.numColumns = 2;
composite.setLayout(layout);
setControl(composite);
new Label(composite, SWT.NONE).setText(NLMessages.getString("ImportWizard_rename"));
_newNameText = new Text(composite, SWT.BORDER);
_newNameText.setLayoutData(new GridData());
((GridData) _newNameText.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) _newNameText.getLayoutData()).grabExcessHorizontalSpace = true;
if (_importWizard.getImportTypeInt() == 0)
{
if (_importWizard != null && _importWizard.getImportDatatypeDes() != null
&& _importWizard.getImportDatatypeDes().getProvider() != null)
{
_newNameText.setText(_importWizard.getImportDatatypeDes().getProvider());
}
}
else if (_importWizard.getImportTypeInt() == 1)
{
if (_importWizard != null && _importWizard.getImportRefTemplate() != null
&& _importWizard.getImportRefTemplate().getValue() != null)
{
_newNameText.setText(_importWizard.getImportRefTemplate().getValue());
}
}
_newNameText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
if (_importWizard.getImportTypeInt() == 0)
{
_importWizard.getImportDatatypeDes().setProvider(_newNameText.getText());
_importWizard.getContainer().updateButtons();
}
else if (_importWizard.getImportTypeInt() == 1)
{
_importWizard.getImportRefTemplate().setValue(_newNameText.getText());
_importWizard.getContainer().updateButtons();
}
}
});
_newNameText.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(final KeyEvent e)
{
}
@Override
public void keyReleased(final KeyEvent e)
{
if (_importWizard.getImportTypeInt() == 0)
{
_importWizard.getImportDatatypeDes().setProvider(_newNameText.getText());
_importWizard.getContainer().updateButtons();
}
else if (_importWizard.getImportTypeInt() == 1)
{
_importWizard.getImportRefTemplate().setValue(_newNameText.getText());
_importWizard.getContainer().updateButtons();
}
}
});
_overrideButton = new Button(composite, SWT.CHECK);
_overrideButton.setText(NLMessages.getString("ImportWizard_override"));
_overrideButton.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(final SelectionEvent event)
{
_override = !_override;
_importWizard.setOverride(_override);
_importWizard.getContainer().updateButtons();
}
}); //SelectionListener
}
/** get new provider name.
* @return new provider name.
*/
public final String getNewName()
{
return _newName;
}
/** set new provider name.
* @param provider new provider name.
*/
public final void setNewNameText(final String provider)
{
_newName = provider;
}
/** is override existing name.
* @return boolean is overriding existing name.
*/
public final boolean isOverride()
{
return _override;
}
}