/**
* 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.view.main.editors;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Observable;
import java.util.Observer;
import java.util.Vector;
import org.bbaw.pdr.ae.common.AEConstants;
import org.bbaw.pdr.ae.common.AEVIEWConstants;
import org.bbaw.pdr.ae.common.CommonActivator;
import org.bbaw.pdr.ae.common.NLMessages;
import org.bbaw.pdr.ae.common.icons.IconsInternal;
import org.bbaw.pdr.ae.control.core.UserRichtsChecker;
import org.bbaw.pdr.ae.control.facade.Facade;
import org.bbaw.pdr.ae.control.interfaces.AMainSearcher;
import org.bbaw.pdr.ae.control.interfaces.IPdrIdService;
import org.bbaw.pdr.ae.metamodel.PdrId;
import org.bbaw.pdr.ae.metamodel.Record;
import org.bbaw.pdr.ae.metamodel.Revision;
import org.bbaw.pdr.ae.model.DetailMods;
import org.bbaw.pdr.ae.model.ExtendMods;
import org.bbaw.pdr.ae.model.Genre;
import org.bbaw.pdr.ae.model.IdentifierMods;
import org.bbaw.pdr.ae.model.LocationMods;
import org.bbaw.pdr.ae.model.NameMods;
import org.bbaw.pdr.ae.model.NamePart;
import org.bbaw.pdr.ae.model.OriginInfo;
import org.bbaw.pdr.ae.model.PdrObject;
import org.bbaw.pdr.ae.model.ReferenceMods;
import org.bbaw.pdr.ae.model.ReferenceModsTemplate;
import org.bbaw.pdr.ae.model.RelatedItem;
import org.bbaw.pdr.ae.model.view.Facet;
import org.bbaw.pdr.ae.view.control.customSWTWidges.ReferenceEditorAddFieldToolTip;
import org.bbaw.pdr.ae.view.control.customSWTWidges.RevisionHistoryToolTip;
import org.bbaw.pdr.ae.view.control.customSWTWidges.YearSpinner;
import org.bbaw.pdr.ae.view.control.dialogs.SelectObjectDialog;
import org.bbaw.pdr.ae.view.control.provider.AutoCompleteNameLabelProvider;
import org.bbaw.pdr.ae.view.control.provider.FacetContentProposalProvider;
import org.bbaw.pdr.ae.view.control.provider.RefTemplateContentProvider;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.NotEnabledException;
import org.eclipse.core.commands.NotHandledException;
import org.eclipse.core.commands.common.NotDefinedException;
import org.eclipse.jface.bindings.keys.KeyStroke;
import org.eclipse.jface.dialogs.IMessageProvider;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.fieldassist.AutoCompleteField;
import org.eclipse.jface.fieldassist.ContentProposalAdapter;
import org.eclipse.jface.fieldassist.ControlDecoration;
import org.eclipse.jface.fieldassist.FieldDecorationRegistry;
import org.eclipse.jface.fieldassist.IContentProposal;
import org.eclipse.jface.fieldassist.IContentProposalListener;
import org.eclipse.jface.fieldassist.TextContentAdapter;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ComboViewer;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ScrolledComposite;
import org.eclipse.swt.custom.StackLayout;
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.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.IHandlerService;
/**
* The Class SourceEditorDialog.
* @author Christoph Plutte
*/
public class SourceEditorDialog extends TitleAreaDialog implements Observer
{
/** The _titel. */
private Text _titel;
/** The sub _titel. */
private Text _subTitel;
/** text of administrative data. */
private Text _pdrId;
/** The creator name text. */
private Text _creatorNameText;
/** The creation time text. */
private Text _creationTimeText;
/** The revisor name. */
private Text _revisorName;
/** The revision time text. */
private Text _revisionTimeText;
/** The button new. */
private Button _buttonNew;
/** The _savebutton. */
private Button _savebutton;
/** The del title. */
private Button _delTitle;
/** The deco val ti. */
private ControlDecoration _decoValTi;
/** The may write. */
private boolean _mayWrite;
/** combo for selecting source genre. */
private Combo _sourceGenreCombo;
/** The source genre combo viewer. */
private ComboViewer _sourceGenreComboViewer;
/** main composite. */
private Composite _mainComposite;
/** main composite for stack layout. */
private Composite _compositeSourcePanel;
/** The source stack layout. */
private StackLayout _sourceStackLayout;
/** The _facade. */
private Facade _facade = Facade.getInstanz();
/** The id service. */
private IPdrIdService _idService = _facade.getIdService();
/** _gridData for textfields. */
private GridData _gridData;
/** _gridData for labels. */
private GridData _gridDataRight;
/** composites for each source type. */
private Composite _compositeEmpty;
/** The composite ref. */
private Composite _compositeRef;
/** The _scrolled composite main. */
private ScrolledComposite _scrolledCompositeMain;
/** The add tool tip. */
private ReferenceEditorAddFieldToolTip _addToolTip;
/** The composite admin data. */
private Composite _compositeAdminData;
/** The _current reference. */
private ReferenceMods _currentReference;
/** The _main searcher. */
private AMainSearcher _mainSearcher = _facade.getMainSearcher();
/** Instance of shared image registry. */
private ImageRegistry _imageReg = CommonActivator.getDefault().getImageRegistry();
/** The WHIT e_ color. */
private static final Color WHITE_COLOR = Display.getDefault().getSystemColor(SWT.COLOR_WHITE);
/** date format of administrative dates in PDR. */
private SimpleDateFormat _adminDateFormat = AEConstants.ADMINDATE_FORMAT;
/** The new reference id. */
private PdrId _newReferenceId;
/** The as genre editor. */
private boolean _asGenreEditor = false;
private PdrId _superReference;
/**
* Instantiates a new source editor dialog.
* @param parentShell the parent shell
* @param newReferenceId the new reference id
*/
public SourceEditorDialog(final Shell parentShell, final PdrId newReferenceId)
{
super(parentShell);
this._newReferenceId = newReferenceId;
}
/**
* Instantiates a new source editor dialog.
* @param parentShell the parent shell
* @param currentReference the current reference
* @param asGenreEditor the as genre editor
*/
public SourceEditorDialog(final Shell parentShell, final ReferenceMods currentReference, final boolean asGenreEditor)
{
super(parentShell);
this._currentReference = currentReference;
this._asGenreEditor = asGenreEditor;
}
public SourceEditorDialog(Shell parentShell, PdrId newReferenceId, PdrId superReference)
{
super(parentShell);
this._newReferenceId = newReferenceId;
this._superReference = superReference;
}
@Override
public final void create()
{
super.create();
// Set the title
setTitle(NLMessages.getString("Editor_0")); //$NON-NLS-1$
// Set the message
setMessage("", IMessageProvider.INFORMATION); //$NON-NLS-1$
dialogArea.addListener(SWT.Traverse, new Listener()
{
@Override
public void handleEvent(final Event e)
{
if (e.detail == SWT.TRAVERSE_ESCAPE)
{
e.doit = false;
}
}
});
}
/**
* Creates the add buttons.
* @param contentComp the content comp
*/
private void createAddButtons(final Composite contentComp)
{
final Button addNames = new Button(contentComp, SWT.PUSH);
addNames.setText(NLMessages.getString("Editor_add_field"));
// addNames.setToolTipText(NLMessages.getString("Editor_add_names_tooltip"));
addNames.setImage(_imageReg.get(IconsInternal.ADD));
_addToolTip = new ReferenceEditorAddFieldToolTip(addNames, _currentReference);
_addToolTip.addObserver(SourceEditorDialog.this);
_addToolTip.setShift(new Point(-25, -25));
_addToolTip.setPopupDelay(0);
_addToolTip.setHideOnMouseDown(false);
_addToolTip.activate();
addNames.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_addToolTip.show(new Point(addNames.getLocation().x - 25, addNames.getLocation().y - 55));
}
});
}
@Override
protected final void createButtonsForButtonBar(final Composite parent)
{
GridData gridData = new GridData();
gridData.verticalAlignment = GridData.FILL;
gridData.horizontalSpan = 3;
gridData.grabExcessHorizontalSpace = true;
gridData.grabExcessVerticalSpace = true;
gridData.horizontalAlignment = SWT.CENTER;
parent.setLayoutData(gridData);
// Create Add button
// Own method as we need to overview the SelectionAdapter
createOkButton(parent, OK, NLMessages.getString("Editor_save"), true); //$NON-NLS-1$
// Add a SelectionListener
// Create Cancel button
Button cancelButton = createButton(parent, CANCEL, NLMessages.getString("Editor_cancel"), false); //$NON-NLS-1$
// Add a SelectionListener
cancelButton.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent e)
{
setReturnCode(CANCEL);
close();
}
});
}
@Override
protected final Control createDialogArea(final Composite parent)
{
_mainComposite = new Composite(parent, SWT.NONE);
_mainComposite.setLayout(new GridLayout());
_mainComposite.setLayoutData(new GridData());
if (AEVIEWConstants.IS_SMALL_MONITOR_DIMENSION)
{
((GridData) _mainComposite.getLayoutData()).heightHint = 400;
}else
{
((GridData) _mainComposite.getLayoutData()).heightHint = 550;
}
((GridData) _mainComposite.getLayoutData()).widthHint = 650;
// The text fields will grow with the size of the dialog
_gridData = new GridData();
_gridData.grabExcessHorizontalSpace = true;
_gridData.horizontalAlignment = GridData.FILL;
_gridDataRight = new GridData();
_gridDataRight.grabExcessHorizontalSpace = false;
_gridDataRight.horizontalAlignment = SWT.RIGHT;
if (!_asGenreEditor)
{
Composite adminComposite = new Composite(_mainComposite, SWT.NONE);
adminComposite.setLayout(new GridLayout());
((GridLayout) adminComposite.getLayout()).numColumns = 3;
adminComposite.setLayoutData(new GridData());
((GridData) adminComposite.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) adminComposite.getLayoutData()).grabExcessHorizontalSpace = true;
Label soureGenreLabel = new Label(adminComposite, SWT.NONE);
soureGenreLabel.setText(NLMessages.getString("Editor_genre")); //$NON-NLS-1$
soureGenreLabel.setLayoutData(new GridData());
_sourceGenreCombo = new Combo(adminComposite, SWT.DROP_DOWN | SWT.READ_ONLY);
final ControlDecoration decoGenreInfo = new ControlDecoration(_sourceGenreCombo, SWT.RIGHT | SWT.TOP);
_sourceGenreCombo.setLayoutData(new GridData());
((GridData) _sourceGenreCombo.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _sourceGenreCombo.getLayoutData()).grabExcessHorizontalSpace = true;
_sourceGenreComboViewer = new ComboViewer(_sourceGenreCombo);
_sourceGenreComboViewer.setContentProvider(new RefTemplateContentProvider(false));
_sourceGenreComboViewer.setLabelProvider(new LabelProvider()
{
@Override
public String getText(final Object element)
{
ReferenceModsTemplate template = (ReferenceModsTemplate) element;
return template.getLabel();
}
});
_sourceGenreComboViewer.setInput(_facade.getReferenceModsTemplates());
_sourceGenreComboViewer.addSelectionChangedListener(new ISelectionChangedListener()
{
@Override
public void selectionChanged(final SelectionChangedEvent event)
{
ISelection selection = event.getSelection();
Object obj = ((IStructuredSelection) selection).getFirstElement();
ReferenceModsTemplate template = (ReferenceModsTemplate) obj;
_compositeSourcePanel.layout();
_compositeSourcePanel.pack();
_mainComposite.layout();
if (template != null)
{
_buttonNew.setEnabled(true);
if (template.getDocumentation() != null)
{
if (template.getDocumentation().containsKey(AEConstants.getCurrentLocale().getLanguage()))
{
decoGenreInfo.setDescriptionText(template.getDocumentation().get(
AEConstants.getCurrentLocale().getLanguage()));
decoGenreInfo.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).getImage());
}
}
else
{
decoGenreInfo.setImage(null);
}
if (_currentReference != null)
{
_currentReference.getGenre().setGenre(template.getValue());
}
}
}
});
_buttonNew = new Button(adminComposite, SWT.PUSH);
_buttonNew.setText(NLMessages.getString("Editor_new")); //$NON-NLS-1$
_buttonNew.setToolTipText(NLMessages.getString("Editor_new_tooltip"));
_buttonNew.setImage(_imageReg.get(IconsInternal.REFERENCE_NEW));
_buttonNew.setLayoutData(new GridData());
((GridData) _buttonNew.getLayoutData()).horizontalIndent = 10;
_buttonNew.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent e)
{
IStructuredSelection selection = (IStructuredSelection) _sourceGenreComboViewer.getSelection();
Object obj = selection.getFirstElement();
ReferenceModsTemplate template = (ReferenceModsTemplate) obj;
loadRefFormat(template.getRefTemplate());
}
});
_buttonNew.setEnabled(false);
_buttonNew.pack();
adminComposite.layout();
adminComposite.pack();
// adminComposite
}
_compositeSourcePanel = new Composite(_mainComposite, SWT.NONE);
_compositeSourcePanel.setLayoutData(new GridData());
((GridData) _compositeSourcePanel.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _compositeSourcePanel.getLayoutData()).grabExcessHorizontalSpace = true;
_compositeSourcePanel.setLayout(new GridLayout());
((GridLayout) _compositeSourcePanel.getLayout()).numColumns = 1;
((GridLayout) _compositeSourcePanel.getLayout()).makeColumnsEqualWidth = false;
_sourceStackLayout = new StackLayout();
_compositeSourcePanel.setLayout(_sourceStackLayout);
// empty composite for stack
_compositeEmpty = new Composite(_compositeSourcePanel, SWT.NONE);
_compositeEmpty.layout();
_compositeEmpty.pack();
_sourceStackLayout.topControl = _compositeEmpty;
if (_currentReference != null)
{
loadReference();
}
return parent;
}
/**
* Creates the ok button.
* @param parent the parent
* @param id the id
* @param label the label
* @param defaultButton the default button
* @return the button
*/
protected final Button createOkButton(final Composite parent, final int id, final String label,
final boolean defaultButton)
{
// increment the number of columns in the button bar
((GridLayout) parent.getLayout()).numColumns++;
_savebutton = new Button(parent, SWT.PUSH);
_savebutton.setText(label);
_savebutton.setFont(JFaceResources.getDialogFont());
_savebutton.setData(new Integer(id));
_savebutton.setEnabled(_mayWrite);
_savebutton.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
if (isValidInput())
{
okPressed();
}
}
});
if (defaultButton)
{
Shell shell = parent.getShell();
if (shell != null)
{
shell.setDefaultButton(_savebutton);
}
}
setButtonLayoutData(_savebutton);
return _savebutton;
}
/**
* Gets the current reference.
* @return the current reference
*/
public final ReferenceMods getCurrentReference()
{
return _currentReference;
}
@Override
protected final boolean isResizable()
{
return true;
}
/**
* Checks if is valid input.
* @return true, if is valid input
*/
private boolean isValidInput()
{
return true;
// Validator v = new Validator();
// int error = v.isValid(_currentReference);
//// System.out.println("Error: " + error); //$NON-NLS-1$
// if(error == 3000)
// {
// return true;
// }
// else if (error == 3200 || error == 3210)
// {
// setMessage(NLMessages.getString("Editor_error3200"), IMessageProvider.ERROR); //$NON-NLS-1$
// return false;
// }
// else if (error == 3300 || error == 3310 || error == 3320)
// {
// setMessage(NLMessages.getString("Editor_3300"), IMessageProvider.ERROR); //$NON-NLS-1$
// return false;
// }
// else
// {
// setMessage(NLMessages.getString("Editor_error3400"), IMessageProvider.ERROR); //$NON-NLS-1$
// return false;
// }
}
/**
* Load access condition.
* @param contentComp the content comp
*/
private void loadAccessCondition(final Composite contentComp)
{
Composite accConComp = new Composite(contentComp, SWT.NONE);
accConComp.setLayoutData(new GridData());
((GridData) accConComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) accConComp.getLayoutData()).grabExcessHorizontalSpace = true;
accConComp.setLayout(new GridLayout());
((GridLayout) accConComp.getLayout()).numColumns = 6;
((GridLayout) accConComp.getLayout()).makeColumnsEqualWidth = false;
Label label1 = new Label(accConComp, SWT.NONE);
label1.setText(NLMessages.getString("Editor_accessCon")); //$NON-NLS-1$
if (_currentReference.getAccessCondition().getType() != null)
{
Label label29 = new Label(accConComp, SWT.NONE);
label29.setText(NLMessages.getString("Editor_type")); //$NON-NLS-1$
final Text type = new Text(accConComp, SWT.BORDER);
type.setEditable(_mayWrite);
type.setBackground(WHITE_COLOR);
type.setLayoutData(_gridData);
type.setText(_currentReference.getAccessCondition().getType().trim());
type.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getAccessCondition().setType(type.getText());
}
});
}
if (_currentReference.getAccessCondition().getAccessCondition() != null)
{
Label label30 = new Label(accConComp, SWT.NONE);
label30.setText(NLMessages.getString("Editor_condition")); //$NON-NLS-1$
final Text acc = new Text(accConComp, SWT.BORDER);
acc.setEditable(_mayWrite);
acc.setBackground(WHITE_COLOR);
acc.setLayoutData(_gridData);
acc.setText(_currentReference.getAccessCondition().getAccessCondition().trim());
acc.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "accessCondition", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(acc, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getAccessCondition().setAccessCondition(acc.getText());
}
});
final Button delAcc = new Button(accConComp, SWT.PUSH);
delAcc.setText("-"); //$NON-NLS-1$
delAcc.setToolTipText(NLMessages.getString("Editor_remove_field"));
delAcc.setEnabled(_mayWrite);
delAcc.setLayoutData(_gridData);
delAcc.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.setAccessCondition(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delAcc.setLayoutData(new GridData());
}
}
/**
* Load admin data.
*/
private void loadAdminData()
{
_compositeAdminData = new Composite(_compositeRef, SWT.NONE);
_compositeAdminData.setLayoutData(new GridData());
((GridData) _compositeAdminData.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _compositeAdminData.getLayoutData()).minimumHeight = 50;
((GridData) _compositeAdminData.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) _compositeAdminData.getLayoutData()).widthHint = 600;
_compositeAdminData.setLayout(new GridLayout());
((GridLayout) _compositeAdminData.getLayout()).marginHeight = 0;
Group pdrIdGroup = new Group(_compositeAdminData, SWT.SHADOW_IN);
pdrIdGroup.setText(NLMessages.getString("Editor_adminDataRef")); //$NON-NLS-1$
pdrIdGroup.setLayoutData(new GridData());
((GridData) pdrIdGroup.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) pdrIdGroup.getLayoutData()).minimumHeight = 50;
((GridData) pdrIdGroup.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) pdrIdGroup.getLayoutData()).widthHint = 590;
pdrIdGroup.setLayout(new GridLayout());
((GridLayout) pdrIdGroup.getLayout()).numColumns = 5;
((GridLayout) pdrIdGroup.getLayout()).marginHeight = 0;
Label pdrLabel = new Label(pdrIdGroup, SWT.NONE);
pdrLabel.setText(NLMessages.getString("Editor_PDRid")); //$NON-NLS-1$
pdrLabel.setLayoutData(new GridData());
_pdrId = new Text(pdrIdGroup, SWT.NONE | SWT.READ_ONLY);
_pdrId.setLayoutData(new GridData());
((GridData) _pdrId.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _pdrId.getLayoutData()).grabExcessHorizontalSpace = true;
_pdrId.setText(_currentReference.getPdrId().toString());
Label bl = new Label(pdrIdGroup, SWT.NONE);
bl.setText("");
bl.setLayoutData(new GridData());
((GridData) bl.getLayoutData()).horizontalSpan = 2;
Label historyLabel = new Label(pdrIdGroup, SWT.NONE);
historyLabel.setText(NLMessages.getString("Editor_revision_history")); //$NON-NLS-1$
historyLabel.setLayoutData(new GridData());
Label creatorLabel = new Label(pdrIdGroup, SWT.NONE);
creatorLabel.setText(NLMessages.getString("Editor_creator")); //$NON-NLS-1$
creatorLabel.setLayoutData(new GridData());
_creatorNameText = new Text(pdrIdGroup, SWT.NONE | SWT.READ_ONLY);
_creatorNameText.setLayoutData(new GridData());
((GridData) _creatorNameText.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _creatorNameText.getLayoutData()).grabExcessHorizontalSpace = true;
if (_currentReference.getRecord() != null && _currentReference.getRecord().getRevisions() != null
&& !_currentReference.getRecord().getRevisions().isEmpty()
&& _currentReference.getRecord().getRevisions().firstElement().getAuthority() != null)
{
_creatorNameText.setText(_facade.getObjectDisplayName(_currentReference.getRecord().getRevisions().get(0)
.getAuthority()));
}
else
{
_creatorNameText.setText(_facade.getCurrentUser().getPdrId().toString());
}
Label creationTime = new Label(pdrIdGroup, SWT.NONE);
creationTime.setText(NLMessages.getString("Editor_date")); //$NON-NLS-1$
creationTime.setLayoutData(new GridData());
_creationTimeText = new Text(pdrIdGroup, SWT.NONE | SWT.READ_ONLY);
_creationTimeText.setLayoutData(new GridData());
if (_currentReference.getRecord() != null && _currentReference.getRecord().getRevisions() != null
&& !_currentReference.getRecord().getRevisions().isEmpty()
&& _currentReference.getRecord().getRevisions().firstElement().getTimeStamp() != null)
{
_creationTimeText.setText(_adminDateFormat.format(_currentReference.getRecord().getRevisions()
.firstElement().getTimeStamp())); //$NON-NLS-1$
}
else
{
_creationTimeText.setText(_adminDateFormat.format(_facade.getCurrentDate()));
}
if (_currentReference.getRecord().getRevisions().size() > 1)
{
Label revisorLabel = new Label(pdrIdGroup, SWT.NONE);
revisorLabel.setText(NLMessages.getString("Editor_lastChanged")); //$NON-NLS-1$
revisorLabel.setLayoutData(new GridData());
_revisorName = new Text(pdrIdGroup, SWT.NONE | SWT.READ_ONLY);
if (_currentReference.getRecord().getRevisions().lastElement().getAuthority() != null)
{
_revisorName.setText(_currentReference.getRecord().getRevisions().lastElement().getAuthority()
.toString()); //$NON-NLS-1$
}
_revisorName.setLayoutData(new GridData());
Label revisionTime = new Label(pdrIdGroup, SWT.NONE);
revisionTime.setText(NLMessages.getString("Editor_date")); //$NON-NLS-1$
revisionTime.setLayoutData(new GridData());
_revisionTimeText = new Text(pdrIdGroup, SWT.NONE | SWT.READ_ONLY);
if (_currentReference.getRecord().getRevisions().lastElement().getTimeStamp() != null)
{
_revisionTimeText.setText(_adminDateFormat.format(_currentReference.getRecord().getRevisions()
.lastElement().getTimeStamp())); //$NON-NLS-1$
}
_revisionTimeText.setLayoutData(new GridData());
final RevisionHistoryToolTip historyToolTip = new RevisionHistoryToolTip(historyLabel,
_currentReference.getRecord());
historyToolTip.setShift(new Point(-25, -25));
historyToolTip.setPopupDelay(0);
historyToolTip.setHideOnMouseDown(true);
historyToolTip.activate();
historyLabel.addMouseListener(new MouseListener()
{
@Override
public void mouseDoubleClick(final MouseEvent e)
{
}
@Override
public void mouseDown(final MouseEvent e)
{
historyToolTip.show(new Point(e.x, e.y));
}
@Override
public void mouseUp(final MouseEvent e)
{
historyToolTip.show(new Point(e.x, e.y));
}
});
}
pdrIdGroup.pack();
pdrIdGroup.layout();
// pdrIdGroup
_compositeAdminData.pack();
_compositeAdminData.layout();
}
/**
* Load identifiers.
* @param contentComp the content comp
*/
private void loadIdentifiers(final Composite contentComp)
{
Composite identifierComp = new Composite(contentComp, SWT.NONE);
identifierComp.setLayoutData(new GridData());
((GridData) identifierComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) identifierComp.getLayoutData()).grabExcessHorizontalSpace = true;
identifierComp.setLayout(new GridLayout());
((GridLayout) identifierComp.getLayout()).numColumns = 6;
((GridLayout) identifierComp.getLayout()).makeColumnsEqualWidth = false;
for (int i = 0; i < _currentReference.getIdentifiersMods().size(); i++)
{
final IdentifierMods id = _currentReference.getIdentifiersMods().get(i);
Label label20 = new Label(identifierComp, SWT.NONE);
label20.setText(NLMessages.getString("Editor_identifier")); //$NON-NLS-1$
Label label21 = new Label(identifierComp, SWT.NONE);
label21.setText(NLMessages.getString("Editor_type")); //$NON-NLS-1$
final Combo identTypeCombo = new Combo(identifierComp, SWT.READ_ONLY);
identTypeCombo.setEnabled(_mayWrite);
identTypeCombo.setBackground(WHITE_COLOR);
identTypeCombo.setData("id", i); //$NON-NLS-1$
identTypeCombo.setLayoutData(new GridData());
identTypeCombo.setItems(AEConstants.REF_IDENTIFIER_TYPE);
identTypeCombo.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
id.setType(identTypeCombo.getItem(identTypeCombo.getSelectionIndex()));
}
});
if (id.getType() != null)
{
identTypeCombo.select(identTypeCombo.indexOf(id.getType()));
}
else
{
identTypeCombo.select(identTypeCombo.indexOf("Signatur")); //$NON-NLS-1$
}
Label label22 = new Label(identifierComp, SWT.NONE);
label22.setText(NLMessages.getString("Editor_id")); //$NON-NLS-1$
final Text ident = new Text(identifierComp, SWT.BORDER);
ident.setEditable(_mayWrite);
ident.setBackground(WHITE_COLOR);
ident.setData("id", i); //$NON-NLS-1$
ident.setLayoutData(_gridData);
if (id.getIdentifier() != null)
{
ident.setText(id.getIdentifier().trim());
}
else
{
ident.setText(""); //$NON-NLS-1$
}
ident.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "identifier", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(ident, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getIdentifiersMods().get((Integer) ident.getData("id")) //$NON-NLS-1$
.setIdentifier(ident.getText());
}
});
final Button deleteIds = new Button(identifierComp, SWT.PUSH);
deleteIds.setText("-"); //$NON-NLS-1$
deleteIds.setToolTipText(NLMessages.getString("Editor_remove_field"));
deleteIds.setEnabled(_mayWrite);
deleteIds.setLayoutData(_gridData);
deleteIds.setData("id", i); //$NON-NLS-1$
deleteIds.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
int index = (Integer) deleteIds.getData("id");
if (_currentReference.getIdentifiersMods().size() > index)
{
_currentReference.getIdentifiersMods().removeElementAt(index); //$NON-NLS-1$
loadValues(_currentReference);
}
}
});
deleteIds.setLayoutData(new GridData());
// if (i == _currentReference.getIdentifiersMods().size() -1)
// {
// final Button addIdentifier = new Button(identifierComp,
// SWT.PUSH);
// addIdentifier.setText("+"); //$NON-NLS-1$
// addIdentifier.setToolTipText(NLMessages.getString("Editor_add_identifier"));
// addIdentifier.setEnabled(_mayWrite);
// addIdentifier.setLayoutData(_gridData);
// addIdentifier.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// IdentifierMods i = new IdentifierMods();
// i.setIdentifier(""); //$NON-NLS-1$
// i.setType(""); //$NON-NLS-1$
// _currentReference.getIdentifiersMods().add(i);
// loadValues(_currentReference);
//
//
// } });
// addIdentifier.setLayoutData(new GridData());
// }
// else{
// new Label(identifierComp, SWT.NONE);
// }
}
}
/**
* Load location.
* @param contentComp the content comp
*/
private void loadLocation(final Composite contentComp)
{
Composite locationComp = new Composite(contentComp, SWT.NONE);
locationComp.setLayoutData(new GridData());
((GridData) locationComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) locationComp.getLayoutData()).grabExcessHorizontalSpace = true;
locationComp.setLayout(new GridLayout());
((GridLayout) locationComp.getLayout()).numColumns = 3;
((GridLayout) locationComp.getLayout()).makeColumnsEqualWidth = false;
LocationMods l = _currentReference.getLocation();
if (l.getUrl() != null)
{
Label label25 = new Label(locationComp, SWT.NONE);
label25.setText(NLMessages.getString("Editor_url")); //$NON-NLS-1$
final Text url = new Text(locationComp, SWT.BORDER);
url.setEditable(_mayWrite);
url.setBackground(WHITE_COLOR);
url.setLayoutData(_gridData);
url.setText(l.getUrl().trim());
url.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "url", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(url, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getLocation().setUrl(url.getText());
}
});
// final Button addDate = new Button(locationComp, SWT.PUSH);
// addDate.setText("+"); //$NON-NLS-1$
// addDate.setToolTipText(NLMessages.getString("Editor_add_extra_location"));
// addDate.setLayoutData(_gridData);
// addDate.setEnabled(l.getPhysicalLocation() == null && _mayWrite);
// addDate.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getLocation().setPhysicalLocation(" "); //$NON-NLS-1$
// loadValues(_currentReference);
// } });
// addDate.setLayoutData(new GridData());
final Button delDate = new Button(locationComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getLocation().setUrl(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (l.getPhysicalLocation() != null)
{
Label label26 = new Label(locationComp, SWT.NONE);
label26.setText(NLMessages.getString("Editor_physicalLocation")); //$NON-NLS-1$
final Text physL = new Text(locationComp, SWT.BORDER);
physL.setEditable(_mayWrite);
physL.setBackground(WHITE_COLOR);
physL.setLayoutData(_gridData);
physL.setText(l.getPhysicalLocation().trim());
physL.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "physicalLocation", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(physL, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getLocation().setPhysicalLocation(physL.getText());
}
});
// final Button addDate = new Button(locationComp, SWT.PUSH);
// addDate.setText("+"); //$NON-NLS-1$
// addDate.setToolTipText(NLMessages.getString("Editor_add_shelf"));
// addDate.setLayoutData(_gridData);
// addDate.setEnabled(l.getShelfLocator() == null && _mayWrite);
//
// addDate.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getLocation().setShelfLocator(" "); //$NON-NLS-1$
// loadValues(_currentReference);
// } });
// addDate.setLayoutData(new GridData());
final Button delDate = new Button(locationComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getLocation().setPhysicalLocation(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (l.getShelfLocator() != null)
{
Label label27 = new Label(locationComp, SWT.NONE);
label27.setText(NLMessages.getString("Editor_shelfLocator")); //$NON-NLS-1$
final Text shelfL = new Text(locationComp, SWT.BORDER);
shelfL.setEditable(_mayWrite);
shelfL.setBackground(WHITE_COLOR);
shelfL.setLayoutData(_gridData);
shelfL.setText(l.getShelfLocator().trim());
shelfL.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "shelfLocator", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(shelfL, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getLocation().setShelfLocator(shelfL.getText());
}
});
// final Button addDate = new Button(locationComp, SWT.PUSH);
// addDate.setText("+"); //$NON-NLS-1$
// addDate.setToolTipText(NLMessages.getString("Editor_add_url"));
// addDate.setLayoutData(_gridData);
// addDate.setEnabled(l.getUrl() == null && _mayWrite);
// addDate.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getLocation().setUrl(" "); //$NON-NLS-1$
// loadValues(_currentReference);
// } });
// addDate.setLayoutData(new GridData());
final Button delDate = new Button(locationComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getLocation().setShelfLocator(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
}
/**
* Load names.
* @param contentComp the content comp
*/
private void loadNames(final Composite contentComp)
{
Composite namesComp = new Composite(contentComp, SWT.NONE);
namesComp.setLayoutData(new GridData());
((GridData) namesComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) namesComp.getLayoutData()).grabExcessHorizontalSpace = true;
namesComp.setLayout(new GridLayout());
((GridLayout) namesComp.getLayout()).numColumns = 5;
((GridLayout) namesComp.getLayout()).makeColumnsEqualWidth = false;
((GridLayout) namesComp.getLayout()).marginHeight = 0;
((GridLayout) namesComp.getLayout()).marginWidth = 0;
for (int i = 0; i < _currentReference.getNameMods().size(); i++)
{
final NameMods n = _currentReference.getNameMods().get(i);
Label label5 = new Label(namesComp, SWT.NONE);
label5.setText(NLMessages.getString("Editor_name") + NLMessages.getString("Editor_reference_role")); //$NON-NLS-1$
final Combo roleC = new Combo(namesComp, SWT.READ_ONLY);
roleC.setData("name", i); //$NON-NLS-1$
roleC.setEnabled(_mayWrite);
roleC.setBackground(WHITE_COLOR);
ComboViewer comboViewer = new ComboViewer(roleC);
comboViewer.setContentProvider(ArrayContentProvider.getInstance());
comboViewer.setLabelProvider(new LabelProvider()
{
@Override
public String getText(final Object element)
{
String str = (String) element;
return NLMessages.getString("Editor_role_" + str); //$NON-NLS-1$
}
});
comboViewer.setInput(AEConstants.REF_ROLETERM_CODE);
comboViewer.addSelectionChangedListener(new ISelectionChangedListener()
{
@Override
public void selectionChanged(final SelectionChangedEvent event)
{
ISelection selection = event.getSelection();
Object obj = ((IStructuredSelection) selection).getFirstElement();
String s = (String) obj;
_currentReference.getNameMods().get((Integer) roleC.getData("name")) //$NON-NLS-1$
.getRoleMods().setRoleTerm(s);
}
});
if (n.getRoleMods() != null && n.getRoleMods().getRoleTerm() != null)
{
StructuredSelection selection = new StructuredSelection(n.getRoleMods().getRoleTerm());
comboViewer.setSelection(selection);
}
else
{
StructuredSelection selection = new StructuredSelection("aut"); //$NON-NLS-1$
comboViewer.setSelection(selection);
n.getRoleMods().setRoleTerm("aut"); //$NON-NLS-1$
}
Composite namepartsComp = new Composite(namesComp, SWT.NONE);
namepartsComp.setLayoutData(new GridData());
((GridData) namepartsComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) namepartsComp.getLayoutData()).grabExcessHorizontalSpace = true;
namepartsComp.setLayout(new GridLayout());
((GridLayout) namepartsComp.getLayout()).numColumns = n.getNameParts().size() * 2;
((GridLayout) namepartsComp.getLayout()).makeColumnsEqualWidth = false;
((GridLayout) namepartsComp.getLayout()).marginHeight = 0;
int num = n.getNameParts().size();
for (int j = 0; j < num; j++)
{
final NamePart namePart = n.getNameParts().get(j);
if (namePart.getType() != null)
{
Label label5d = new Label(namepartsComp, SWT.NONE);
label5d.setText(NLMessages.getString("Editor_name_" + namePart.getType()) + ":"); //$NON-NLS-1$
label5d.pack();
}
final Text name = new Text(namepartsComp, SWT.BORDER);
name.setData("name", i); //$NON-NLS-1$
name.setData("nPart", j); //$NON-NLS-1$
name.setEditable(_mayWrite);
name.setBackground(WHITE_COLOR);
final ControlDecoration decoValName = new ControlDecoration(name, SWT.LEFT | SWT.TOP);
name.setLayoutData(new GridData());
((GridData) name.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) name.getLayoutData()).horizontalAlignment = SWT.FILL;
name.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "namePart", namePart.getType(), null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(name, new TextContentAdapter(), vals);
validate();
}
@Override
public void focusLost(final FocusEvent e)
{
namePart.setNamePart(name.getText());
validate();
}
});
name.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(final KeyEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(final KeyEvent e)
{
namePart.setNamePart(name.getText());
validate();
}
});
if (namePart.getNamePart() != null)
{
name.setText(namePart.getNamePart().trim());
}
if (_currentReference.getTitleInfo() != null && _currentReference.getTitleInfo().isValid()
&& _currentReference.getNameMods() != null && !_currentReference.getNameMods().isEmpty())
{
decoValName.setImage(null);
}
else
{
decoValName.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED).getImage());
}
// max 3 nameparts
if (j == 2)
{
break;
}
}
namepartsComp.layout();
final Button addExtra = new Button(namesComp, SWT.PUSH);
addExtra.setText("<+>"); //$NON-NLS-1$
addExtra.setToolTipText(NLMessages.getString("Editor_add_extra_person"));
addExtra.setLayoutData(_gridData);
addExtra.setData("name", i); //$NON-NLS-1$
addExtra.setEnabled((n.getAffiliation() == null && n.getDescription() == null) && _mayWrite);
addExtra.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getNameMods().get((Integer) addExtra.getData("name")).setType(" "); //$NON-NLS-1$ //$NON-NLS-2$
_currentReference.getNameMods().get((Integer) addExtra.getData("name")).setAffiliation(" "); //$NON-NLS-1$ //$NON-NLS-2$
_currentReference.getNameMods().get((Integer) addExtra.getData("name")).setDescription(" "); //$NON-NLS-1$ //$NON-NLS-2$
loadValues(_currentReference);
}
});
addExtra.setLayoutData(new GridData());
final Button deleteName = new Button(namesComp, SWT.PUSH);
deleteName.setText("-"); //$NON-NLS-1$
deleteName.setToolTipText(NLMessages.getString("Editor_remove_field"));
// deleteName.setEnabled(_mayWrite && _currentReference.isValid());
deleteName.setLayoutData(_gridData);
deleteName.setData("name", i); //$NON-NLS-1$
deleteName.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getNameMods().removeElementAt((Integer) deleteName.getData("name")); //$NON-NLS-1$
loadValues(_currentReference);
}
});
if ((_currentReference.getTitleInfo() != null && _currentReference.getTitleInfo().getTitle() != null)
|| (_currentReference.getNameMods() != null && _currentReference.getNameMods().size() > 1))
{
deleteName.setEnabled(_mayWrite);
}
else
{
deleteName.setEnabled(false);
}
deleteName.setLayoutData(new GridData());
// if (i == _currentReference.getNameMods().size() -1)
// {
// final Button addName = new Button(namesComp, SWT.PUSH);
// addName.setText("+"); //$NON-NLS-1$
// addName.setToolTipText(NLMessages.getString("Editor_add_name"));
// addName.setEnabled(_mayWrite);
// addName.setLayoutData(_gridData);
// addName.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getNameMods().add(new NameMods(2));
// loadValues(_currentReference);
//
//
// } });
// addName.setLayoutData(new GridData());
// }
// else{
// new Label(namesComp, SWT.NONE);
// }
if (n.getType() != null && n.getAffiliation() != null && n.getDescription() != null)
{
Composite namesComp2 = new Composite(namesComp, SWT.NONE);
namesComp2.setLayoutData(new GridData());
((GridData) namesComp2.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) namesComp2.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) namesComp2.getLayoutData()).horizontalSpan = 9;
namesComp2.setLayout(new GridLayout());
((GridLayout) namesComp2.getLayout()).numColumns = 9;
((GridLayout) namesComp2.getLayout()).makeColumnsEqualWidth = false;
int span = 0;
if (n.getType() != null)
{
Label label6 = new Label(namesComp2, SWT.NONE);
label6.setText(NLMessages.getString("Editor_type")); //$NON-NLS-1$
final Combo typeCombo = new Combo(namesComp2, SWT.READ_ONLY);
typeCombo.setData("name", i); //$NON-NLS-1$
typeCombo.setEnabled(_mayWrite);
typeCombo.setBackground(WHITE_COLOR);
typeCombo.setText(n.getType().trim());
typeCombo.setLayoutData(new GridData());
// ((GridData)
// typeCombo.getLayoutData()).horizontalAlignment =
// SWT.FILL;
// ((GridData)
// typeCombo.getLayoutData()).grabExcessHorizontalSpace =
// true;
((GridData) typeCombo.getLayoutData()).horizontalSpan = 1;
ComboViewer typeComboViewer = new ComboViewer(typeCombo);
typeComboViewer.setContentProvider(ArrayContentProvider.getInstance());
typeComboViewer.setLabelProvider(new LabelProvider()
{
@Override
public String getText(final Object element)
{
String str = (String) element;
return NLMessages.getString("Editor_name_type_" + str); //$NON-NLS-1$
}
});
typeComboViewer.setInput(AEConstants.REF_NAME_TYPE);
typeComboViewer.addSelectionChangedListener(new ISelectionChangedListener()
{
@Override
public void selectionChanged(final SelectionChangedEvent event)
{
ISelection selection = event.getSelection();
Object obj = ((IStructuredSelection) selection).getFirstElement();
String s = (String) obj;
_currentReference.getNameMods().get((Integer) typeCombo.getData("name")) //$NON-NLS-1$
.setType(s);
}
});
if (n.getType().trim().length() > 0)
{
StructuredSelection selection = new StructuredSelection(n.getType());
typeComboViewer.setSelection(selection);
}
else
{
StructuredSelection selection = new StructuredSelection("personal"); //$NON-NLS-1$
typeComboViewer.setSelection(selection);
_currentReference.getNameMods().get((Integer) typeCombo.getData("name")) //$NON-NLS-1$
.setType("personal"); //$NON-NLS-1$
}
span = 2;
}
if (n.getAffiliation() != null)
{
Label label7 = new Label(namesComp2, SWT.NONE);
label7.setText(NLMessages.getString("Editor_affiliation")); //$NON-NLS-1$
final Text aff = new Text(namesComp2, SWT.BORDER);
aff.setData("name", i); //$NON-NLS-1$
aff.setEditable(_mayWrite);
aff.setBackground(WHITE_COLOR);
aff.setText(n.getAffiliation().trim());
aff.setLayoutData(new GridData());
((GridData) aff.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) aff.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) aff.getLayoutData()).horizontalSpan = 2;
aff.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test2"}; //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "affiliation", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(aff, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getNameMods().get((Integer) aff.getData("name")) //$NON-NLS-1$
.setAffiliation(aff.getText());
}
});
span = span + 3;
}
if (n.getDescription() != null)
{
Label label8 = new Label(namesComp2, SWT.NONE);
label8.setText(NLMessages.getString("Editor_description")); //$NON-NLS-1$
final Text desc = new Text(namesComp2, SWT.BORDER);
desc.setData("name", i); //$NON-NLS-1$
desc.setEditable(_mayWrite);
desc.setBackground(WHITE_COLOR);
desc.setText(n.getDescription().trim());
desc.setLayoutData(new GridData());
((GridData) desc.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) desc.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) desc.getLayoutData()).horizontalSpan = 2;
desc.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "description", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(desc, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getNameMods().get((Integer) desc.getData("name")) //$NON-NLS-1$
.setDescription(desc.getText());
}
});
span = span + 3;
}
if (span % 8 != 0)
{
Label bl = new Label(namesComp2, SWT.NONE);
bl.setLayoutData(new GridData());
((GridData) bl.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) bl.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) bl.getLayoutData()).horizontalSpan = 8 - span;
}
final Button delExtra = new Button(namesComp2, SWT.PUSH);
delExtra.setText("-"); //$NON-NLS-1$
delExtra.setToolTipText(NLMessages.getString("Editor_remove_name_extra"));
delExtra.setEnabled(_mayWrite);
delExtra.setLayoutData(_gridData);
delExtra.setData("name", i); //$NON-NLS-1$
delExtra.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getNameMods().get((Integer) addExtra.getData("name")).setType(null); //$NON-NLS-1$ //$NON-NLS-2$
_currentReference.getNameMods().get((Integer) addExtra.getData("name")).setAffiliation(null); //$NON-NLS-1$ //$NON-NLS-2$
_currentReference.getNameMods().get((Integer) addExtra.getData("name")).setDescription(null); //$NON-NLS-1$ //$NON-NLS-2$
loadValues(_currentReference);
}
});
delExtra.setLayoutData(new GridData());
}
}
}
/**
* Load note.
* @param contentComp the content comp
*/
private void loadNote(final Composite contentComp)
{
Composite noteComp = new Composite(contentComp, SWT.NONE);
noteComp.setLayoutData(new GridData());
((GridData) noteComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) noteComp.getLayoutData()).grabExcessHorizontalSpace = true;
noteComp.setLayout(new GridLayout());
((GridLayout) noteComp.getLayout()).numColumns = 3;
((GridLayout) noteComp.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getNote().getNote() != null)
{
Label label17 = new Label(noteComp, SWT.None);
label17.setText(NLMessages.getString("Editor_note")); //$NON-NLS-1$
final Text note = new Text(noteComp, SWT.BORDER);
note.setEditable(_mayWrite);
note.setBackground(WHITE_COLOR);
note.setLayoutData(_gridData);
note.setText(_currentReference.getNote().getNote().trim());
note.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "note", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(note, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getNote().setNote(note.getText());
}
});
final Button delNote = new Button(noteComp, SWT.PUSH);
delNote.setText("-"); //$NON-NLS-1$
delNote.setToolTipText(NLMessages.getString("Editor_remove_field"));
delNote.setEnabled(_mayWrite);
delNote.setLayoutData(_gridData);
delNote.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.setNote(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delNote.setLayoutData(new GridData());
}
if (_currentReference.getNote().getType() != null)
{
Label label18 = new Label(noteComp, SWT.None);
label18.setText(NLMessages.getString("Editor_noteType")); //$NON-NLS-1$
final Text nType = new Text(noteComp, SWT.BORDER);
nType.setEditable(_mayWrite);
nType.setBackground(WHITE_COLOR);
nType.setLayoutData(_gridData);
nType.setText(_currentReference.getNote().getType().trim());
nType.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "note", "type", null, null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(nType, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getNote().setType(nType.getText());
}
});
}
}
/**
* Load origin info.
* @param contentComp the content comp
*/
private void loadOriginInfo(final Composite contentComp)
{
Composite originComp = new Composite(contentComp, SWT.NONE);
originComp.setLayoutData(new GridData());
((GridData) originComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) originComp.getLayoutData()).grabExcessHorizontalSpace = true;
originComp.setLayout(new GridLayout());
((GridLayout) originComp.getLayout()).numColumns = 9;
((GridLayout) originComp.getLayout()).makeColumnsEqualWidth = false;
OriginInfo oi = _currentReference.getOriginInfo();
if (oi.getPlaceTerm() != null)
{
Label label13 = new Label(originComp, SWT.NONE);
label13.setText(NLMessages.getString("Editor_place")); //$NON-NLS-1$
final Text place = new Text(originComp, SWT.BORDER);
place.setEditable(_mayWrite);
place.setBackground(WHITE_COLOR);
place.setLayoutData(new GridData());
((GridData) place.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) place.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) place.getLayoutData()).horizontalSpan = 7;
place.setText(oi.getPlaceTerm().trim());
place.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "placeTerm", "text", null, null); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(place, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getOriginInfo().setPlaceTerm(place.getText());
}
});
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setPlaceTerm(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getPublisher() != null)
{
Label label12 = new Label(originComp, SWT.NONE);
label12.setText(NLMessages.getString("Editor_publisher")); //$NON-NLS-1$
final Text pub = new Text(originComp, SWT.BORDER);
pub.setEditable(_mayWrite);
pub.setBackground(WHITE_COLOR);
pub.setLayoutData(new GridData());
((GridData) pub.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) pub.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) pub.getLayoutData()).horizontalSpan = 7;
pub.setText(oi.getPublisher().trim());
pub.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "publisher", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(pub, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getOriginInfo().setPublisher(pub.getText());
}
});
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setPublisher(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getDateCreated() != null)
{
Label label9 = new Label(originComp, SWT.NONE);
label9.setText(NLMessages.getString("Editor_dateCreated")); //$NON-NLS-1$
{
Label labelDay = new Label(originComp, SWT.NONE);
labelDay.setText(NLMessages.getString("Editor_day"));
final Combo comboTimeDay = new Combo(originComp, SWT.READ_ONLY);
comboTimeDay.setEnabled(_mayWrite);
comboTimeDay.setBackground(WHITE_COLOR);
comboTimeDay.setLayoutData(new GridData());
((GridData) comboTimeDay.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeDay.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeDay.setItems(AEConstants.DAYS);
comboTimeDay.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreated().setDay(comboTimeDay.getSelectionIndex());
}
});
Label labelMonth = new Label(originComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(originComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreated().setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(originComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(originComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreated().setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateCreated().getYear() > 0)
{
comboTimeDay.select(oi.getDateCreated().getDay());
comboTimeMonth.select(oi.getDateCreated().getMonth());
spinnerTimeYear.setSelection(oi.getDateCreated().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setDateCreated(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getDateCreatedTimespan() != null)
{
Composite timespanComp = new Composite(contentComp, SWT.NONE);
timespanComp.setLayoutData(new GridData());
((GridData) timespanComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) timespanComp.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) timespanComp.getLayoutData()).horizontalSpan = 9;
timespanComp.setLayout(new GridLayout());
((GridLayout) timespanComp.getLayout()).numColumns = 13;
((GridLayout) timespanComp.getLayout()).makeColumnsEqualWidth = false;
Label label9 = new Label(timespanComp, SWT.NONE);
label9.setText(NLMessages.getString("Editor_dateCreated") + " " + NLMessages.getString("Editor_from")); //$NON-NLS-1$
{
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreatedTimespan().getDateFrom()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreatedTimespan().getDateFrom()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateCreatedTimespan().getDateFrom() != null
&& oi.getDateCreatedTimespan().getDateFrom().getYear() > 0)
{
comboTimeMonth.select(oi.getDateCreatedTimespan().getDateFrom().getMonth());
spinnerTimeYear.setSelection(oi.getDateCreatedTimespan().getDateFrom().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
{
Label labelTo = new Label(timespanComp, SWT.NONE);
labelTo.setText(NLMessages.getString("Editor_to"));
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreatedTimespan().getDateTo()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCreatedTimespan().getDateTo()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateCreatedTimespan().getDateTo() != null
&& oi.getDateCreatedTimespan().getDateTo().getYear() > 0)
{
comboTimeMonth.select(oi.getDateCreatedTimespan().getDateTo().getMonth());
spinnerTimeYear.setSelection(oi.getDateCreatedTimespan().getDateTo().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
final Button delDate = new Button(timespanComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setDateCreatedTimespan(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getDateIssued() != null)
{
Label label9 = new Label(originComp, SWT.NONE);
label9.setText(NLMessages.getString("Editor_dateIssued"));
{
Label labelDay = new Label(originComp, SWT.NONE);
labelDay.setText(NLMessages.getString("Editor_day"));
final Combo comboTimeDay = new Combo(originComp, SWT.READ_ONLY);
comboTimeDay.setEnabled(_mayWrite);
comboTimeDay.setBackground(WHITE_COLOR);
comboTimeDay.setLayoutData(new GridData());
((GridData) comboTimeDay.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeDay.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeDay.setItems(AEConstants.DAYS);
comboTimeDay.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssued().setDay(comboTimeDay.getSelectionIndex());
}
});
Label labelMonth = new Label(originComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(originComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssued().setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(originComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(originComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssued().setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateIssued().getYear() > 0)
{
comboTimeDay.select(oi.getDateIssued().getDay());
comboTimeMonth.select(oi.getDateIssued().getMonth());
spinnerTimeYear.setSelection(oi.getDateIssued().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
// final Button addDate = new Button(originComp, SWT.PUSH);
// addDate.setText("+"); //$NON-NLS-1$
// addDate.setToolTipText(NLMessages.getString("Editor_date_capture"));
// addDate.setLayoutData(_gridData);
// addDate.setEnabled(oi.getDateCaptured() == null && _mayWrite);
//
// addDate.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getOriginInfo().setDateCaptured(new PdrDate(0,
// 0, 0));
// loadValues(_currentReference);
// } });
// addDate.setLayoutData(new GridData());
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setDateIssued(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getDateIssuedTimespan() != null)
{
Composite timespanComp = new Composite(contentComp, SWT.NONE);
timespanComp.setLayoutData(new GridData());
((GridData) timespanComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) timespanComp.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) timespanComp.getLayoutData()).horizontalSpan = 9;
timespanComp.setLayout(new GridLayout());
((GridLayout) timespanComp.getLayout()).numColumns = 13;
((GridLayout) timespanComp.getLayout()).makeColumnsEqualWidth = false;
Label label9 = new Label(timespanComp, SWT.NONE);
label9.setText(NLMessages.getString("Editor_dateIssued") + " " + NLMessages.getString("Editor_from")); //$NON-NLS-1$
{
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssuedTimespan().getDateFrom()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssuedTimespan().getDateFrom()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateIssuedTimespan().getDateFrom() != null
&& oi.getDateIssuedTimespan().getDateFrom().getYear() > 0)
{
comboTimeMonth.select(oi.getDateIssuedTimespan().getDateFrom().getMonth());
spinnerTimeYear.setSelection(oi.getDateIssuedTimespan().getDateFrom().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
{
Label labelTo = new Label(timespanComp, SWT.NONE);
labelTo.setText(NLMessages.getString("Editor_to"));
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssuedTimespan().getDateTo()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateIssuedTimespan().getDateTo()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateIssuedTimespan().getDateTo() != null
&& oi.getDateIssuedTimespan().getDateTo().getYear() > 0)
{
comboTimeMonth.select(oi.getDateIssuedTimespan().getDateTo().getMonth());
spinnerTimeYear.setSelection(oi.getDateIssuedTimespan().getDateTo().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
final Button delDate = new Button(timespanComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setDateIssuedTimespan(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getDateCaptured() != null)
{
Label label10 = new Label(originComp, SWT.NONE);
label10.setText(NLMessages.getString("Editor_dateCaptured")); //$NON-NLS-1$
{
Label labelDay = new Label(originComp, SWT.NONE);
labelDay.setText(NLMessages.getString("Editor_day"));
final Combo comboTimeDayCap = new Combo(originComp, SWT.READ_ONLY);
comboTimeDayCap.setEnabled(_mayWrite);
comboTimeDayCap.setBackground(WHITE_COLOR);
comboTimeDayCap.setLayoutData(new GridData());
((GridData) comboTimeDayCap.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeDayCap.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeDayCap.setItems(AEConstants.DAYS);
comboTimeDayCap.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCaptured().setDay(comboTimeDayCap.getSelectionIndex());
}
});
Label labelMonth = new Label(originComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonthCap = new Combo(originComp, SWT.READ_ONLY);
comboTimeMonthCap.setEnabled(_mayWrite);
comboTimeMonthCap.setBackground(WHITE_COLOR);
comboTimeMonthCap.setLayoutData(new GridData());
((GridData) comboTimeMonthCap.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonthCap.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonthCap.setItems(AEConstants.MONTHS);
comboTimeMonthCap.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCaptured()
.setMonth(comboTimeMonthCap.getSelectionIndex());
}
});
Label labelYear = new Label(originComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYearCap = new YearSpinner(originComp, SWT.BORDER);
spinnerTimeYearCap.setEnabled(_mayWrite);
spinnerTimeYearCap.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCaptured().setYear(spinnerTimeYearCap.getSelection());
}
});
if (oi.getDateCaptured().getYear() > 0)
{
comboTimeDayCap.select(oi.getDateCaptured().getDay());
comboTimeMonthCap.select(oi.getDateCaptured().getMonth());
spinnerTimeYearCap.setSelection(oi.getDateCaptured().getYear());
}
else
{
spinnerTimeYearCap.setSelection(0);
}
}
// final Button addDate = new Button(originComp, SWT.PUSH);
// addDate.setText("+"); //$NON-NLS-1$
// addDate.setToolTipText(NLMessages.getString("Editor_add_date_copyright"));
// addDate.setLayoutData(_gridData);
// addDate.setEnabled(oi.getCopyrightDate() == null && _mayWrite);
// addDate.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getOriginInfo().setCopyrightDate(new PdrDate(0,
// 0, 0));
// loadValues(_currentReference);
//
// } });
// addDate.setLayoutData(new GridData());
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setDateCaptured(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getDateCapturedTimespan() != null)
{
Composite timespanComp = new Composite(contentComp, SWT.NONE);
timespanComp.setLayoutData(new GridData());
((GridData) timespanComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) timespanComp.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) timespanComp.getLayoutData()).horizontalSpan = 9;
timespanComp.setLayout(new GridLayout());
((GridLayout) timespanComp.getLayout()).numColumns = 13;
((GridLayout) timespanComp.getLayout()).makeColumnsEqualWidth = false;
Label label9 = new Label(timespanComp, SWT.NONE);
label9.setText(NLMessages.getString("Editor_dateCaptured") + " " + NLMessages.getString("Editor_from")); //$NON-NLS-1$
{
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCapturedTimespan().getDateFrom()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCapturedTimespan().getDateFrom()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateCapturedTimespan().getDateFrom() != null
&& oi.getDateCapturedTimespan().getDateFrom().getYear() > 0)
{
comboTimeMonth.select(oi.getDateCapturedTimespan().getDateFrom().getMonth());
spinnerTimeYear.setSelection(oi.getDateCapturedTimespan().getDateFrom().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
{
Label labelTo = new Label(timespanComp, SWT.NONE);
labelTo.setText(NLMessages.getString("Editor_to"));
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCapturedTimespan().getDateTo()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getDateCapturedTimespan().getDateTo()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getDateCapturedTimespan().getDateTo() != null
&& oi.getDateCapturedTimespan().getDateTo().getYear() > 0)
{
comboTimeMonth.select(oi.getDateCapturedTimespan().getDateTo().getMonth());
spinnerTimeYear.setSelection(oi.getDateCapturedTimespan().getDateTo().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
final Button delDate = new Button(timespanComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setDateCapturedTimespan(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getCopyrightDate() != null)
{
Label label11 = new Label(originComp, SWT.NONE);
label11.setText(NLMessages.getString("Editor_copyrightDate")); //$NON-NLS-1$
{
Label labelDay = new Label(originComp, SWT.NONE);
labelDay.setText(NLMessages.getString("Editor_day"));
final Combo comboTimeDayCop = new Combo(originComp, SWT.READ_ONLY);
comboTimeDayCop.setEnabled(_mayWrite);
comboTimeDayCop.setBackground(WHITE_COLOR);
comboTimeDayCop.setLayoutData(new GridData());
((GridData) comboTimeDayCop.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeDayCop.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeDayCop.setItems(AEConstants.DAYS);
comboTimeDayCop.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDate()
.setDay(comboTimeDayCop.getSelectionIndex());
}
});
Label labelMonth = new Label(originComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonthCop = new Combo(originComp, SWT.READ_ONLY);
comboTimeMonthCop.setEnabled(_mayWrite);
comboTimeMonthCop.setBackground(WHITE_COLOR);
comboTimeMonthCop.setLayoutData(new GridData());
((GridData) comboTimeMonthCop.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonthCop.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonthCop.setItems(AEConstants.MONTHS);
comboTimeMonthCop.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDate()
.setMonth(comboTimeMonthCop.getSelectionIndex());
}
});
Label labelYear = new Label(originComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYearCop = new YearSpinner(originComp, SWT.BORDER);
spinnerTimeYearCop.setEnabled(_mayWrite);
spinnerTimeYearCop.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDate().setYear(spinnerTimeYearCop.getSelection());
}
});
if (oi.getCopyrightDate().getYear() > 0)
{
comboTimeDayCop.select(oi.getCopyrightDate().getDay());
comboTimeMonthCop.select(oi.getCopyrightDate().getMonth());
spinnerTimeYearCop.setSelection(oi.getCopyrightDate().getYear());
}
else
{
spinnerTimeYearCop.setSelection(0);
}
}
// final Button addDate = new Button(originComp, SWT.PUSH);
// addDate.setText("+"); //$NON-NLS-1$
// addDate.setToolTipText(NLMessages.getString("Editor_add_date_creation"));
// addDate.setLayoutData(_gridData);
// addDate.setEnabled(oi.getDateCreated() == null && _mayWrite);
//
// addDate.addSelectionListener(new SelectionAdapter()
// {
// public void widgetSelected(final SelectionEvent event)
// {
// _currentReference.getOriginInfo().setDateCreated(new PdrDate(0,
// 0, 0));
// loadValues(_currentReference);
// } });
// addDate.setLayoutData(new GridData());
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setCopyrightDate(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getCopyrightDateTimespan() != null)
{
Composite timespanComp = new Composite(contentComp, SWT.NONE);
timespanComp.setLayoutData(new GridData());
((GridData) timespanComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) timespanComp.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) timespanComp.getLayoutData()).horizontalSpan = 9;
timespanComp.setLayout(new GridLayout());
((GridLayout) timespanComp.getLayout()).numColumns = 13;
((GridLayout) timespanComp.getLayout()).makeColumnsEqualWidth = false;
Label label9 = new Label(timespanComp, SWT.NONE);
label9.setText(NLMessages.getString("Editor_copyrightDate") + " " + NLMessages.getString("Editor_from")); //$NON-NLS-1$
{
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDateTimespan().getDateFrom()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDateTimespan().getDateFrom()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getCopyrightDateTimespan().getDateFrom() != null
&& oi.getCopyrightDateTimespan().getDateFrom().getYear() > 0)
{
comboTimeMonth.select(oi.getCopyrightDateTimespan().getDateFrom().getMonth());
spinnerTimeYear.setSelection(oi.getCopyrightDateTimespan().getDateFrom().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
{
Label labelTo = new Label(timespanComp, SWT.NONE);
labelTo.setText(NLMessages.getString("Editor_to"));
Label labelMonth = new Label(timespanComp, SWT.NONE);
labelMonth.setText(NLMessages.getString("Editor_month"));
final Combo comboTimeMonth = new Combo(timespanComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDateTimespan().getDateTo()
.setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(timespanComp, SWT.NONE);
labelYear.setText(NLMessages.getString("Editor_year"));
final YearSpinner spinnerTimeYear = new YearSpinner(timespanComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
_currentReference.getOriginInfo().getCopyrightDateTimespan().getDateTo()
.setYear(spinnerTimeYear.getSelection());
}
});
if (oi.getCopyrightDateTimespan().getDateTo() != null
&& oi.getCopyrightDateTimespan().getDateTo().getYear() > 0)
{
comboTimeMonth.select(oi.getCopyrightDateTimespan().getDateTo().getMonth());
spinnerTimeYear.setSelection(oi.getCopyrightDateTimespan().getDateTo().getYear());
}
else
{
spinnerTimeYear.setSelection(0);
}
}
final Button delDate = new Button(timespanComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_date"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setCopyrightDateTimespan(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (oi.getEdition() != null)
{
Label label15 = new Label(originComp, SWT.NONE);
label15.setText(NLMessages.getString("Editor_edition")); //$NON-NLS-1$
final Text edition = new Text(originComp, SWT.BORDER);
edition.setEditable(_mayWrite);
edition.setBackground(WHITE_COLOR);
edition.setLayoutData(new GridData());
((GridData) edition.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) edition.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) edition.getLayoutData()).horizontalSpan = 7;
edition.setText(oi.getEdition().trim());
edition.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "edition", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(edition, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getOriginInfo().setEdition(edition.getText());
}
});
final Button delDate = new Button(originComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.setLayoutData(_gridData);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getOriginInfo().setEdition(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
}
/**
* Load reference.
*/
private void loadReference()
{
// if (_facade.getCurrentReference() != null)
// {
// _currentReference = (ReferenceMods)
// _facade.getCurrentReference().clone();
_buttonNew.setEnabled(false);
Revision revision = new Revision();
revision.setRevisor(new String(_facade.getCurrentUser().getDisplayName()));
revision.setTimeStamp(_facade.getCurrentDate());
revision.setAuthority(_facade.getCurrentUser().getPdrId().clone());
if (_currentReference.isNew())
{
revision.setRef(0);
Record record = new Record();
record.getRevisions().add(revision);
_currentReference.setRecord(record);
}
_mayWrite = new UserRichtsChecker().mayWrite(_currentReference);
if (!_mayWrite)
{
setMessage(NLMessages.getString("Editor_message_no_writing"));
}
loadValues(_currentReference);
_sourceGenreCombo.setEnabled(_mayWrite);
// }
}
/**
* Load ref format.
* @param reference the reference
*/
private void loadRefFormat(final ReferenceMods reference)
{
_currentReference = reference.clone();
_currentReference.setPdrId(_newReferenceId);
_currentReference.setNew(true);
Revision revision = new Revision();
revision.setRevisor(new String(_facade.getCurrentUser().getDisplayName()));
revision.setTimeStamp(_facade.getCurrentDate());
revision.setAuthority(_facade.getCurrentUser().getPdrId().clone());
if (_currentReference.isNew())
{
revision.setRef(0);
Record record = new Record();
record.getRevisions().add(revision);
_currentReference.setRecord(record);
}
if (_currentReference.getGenre() == null)
{
_currentReference.setGenre(new Genre());
}
_currentReference.getGenre().setAuthority("PDR");
IStructuredSelection selection = (IStructuredSelection) _sourceGenreComboViewer.getSelection();
Object obj = selection.getFirstElement();
ReferenceModsTemplate template = (ReferenceModsTemplate) obj;
_currentReference.getGenre().setGenre(template.getValue());
_buttonNew.setEnabled(false);
_mayWrite = true;
_savebutton.setEnabled(_mayWrite);
if (_superReference != null)
{
RelatedItem relItem = new RelatedItem();
relItem.setType("host"); //$NON-NLS-1$
relItem.setId(_superReference.toString());
if (_currentReference.getRelatedItems() == null)
{
_currentReference.setRelatedItems(new Vector<RelatedItem>(1));
}
_currentReference.getRelatedItems().add(relItem); //$NON-NLS-1$
}
loadValues(_currentReference);
}
/**
* Load related items.
* @param contentComp the content comp
*/
private void loadRelatedItems(final Composite contentComp)
{
Composite relatedItemComp = new Composite(contentComp, SWT.NONE);
relatedItemComp.setLayoutData(new GridData());
((GridData) relatedItemComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) relatedItemComp.getLayoutData()).grabExcessHorizontalSpace = true;
relatedItemComp.setLayout(new GridLayout());
((GridLayout) relatedItemComp.getLayout()).numColumns = 10;
((GridLayout) relatedItemComp.getLayout()).makeColumnsEqualWidth = false;
for (int i = 0; i < _currentReference.getRelatedItems().size(); i++)
{
final RelatedItem relItem = _currentReference.getRelatedItems().get(i);
Label label20 = new Label(relatedItemComp, SWT.NONE);
label20.setText(NLMessages.getString("Editor_part_in"));
final Text sourceText = new Text(relatedItemComp, SWT.BORDER);
sourceText.setEditable(_mayWrite);
sourceText.setBackground(WHITE_COLOR);
sourceText.setLayoutData(new GridData());
((GridData) sourceText.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) sourceText.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) sourceText.getLayoutData()).horizontalIndent = 8;
((GridData) sourceText.getLayoutData()).horizontalSpan = 6;
ControlDecoration decoValIdInfo = new ControlDecoration(sourceText, SWT.LEFT | SWT.BOTTOM);
decoValIdInfo.setDescriptionText(NLMessages.getString("Editor_proposal_keybinding"));
decoValIdInfo.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_INFORMATION).getImage());
decoValIdInfo.setShowOnlyOnFocus(false);
final ControlDecoration decoValId = new ControlDecoration(sourceText, SWT.LEFT | SWT.TOP);
decoValId.setShowOnlyOnFocus(false);
// TODO auskommentiert da in den SelectObjectDialog erst einer
// Filter eingebaut werden muss,
// der Quellen ausblende, die in zweiter Ebene gehosted sind.
// Button relateRefButton = new Button(relatedItemComp, SWT.PUSH);
// relateRefButton.setText(NLMessages.getString("Editor_select_dots")); //$NON-NLS-1$
// relateRefButton.setImage(_imageReg.get(IconsInternal.SEARCH));
// relateRefButton.setEnabled(_mayWrite);
// relateRefButton.setLayoutData(new GridData());
// relateRefButton.setToolTipText(""); //$NON-NLS-1$
//
// relateRefButton.pack();
if (relItem.getId() != null) //$NON-NLS-1$
{
PdrObject o = _facade.getPdrObject(new PdrId(relItem.getId()));
if (o != null)
{
sourceText.setText(o.getDisplayNameWithID());
}
else
{
sourceText.setText(relItem.getId());
}
}
else
{
sourceText.setText(""); //$NON-NLS-1$
}
sourceText.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
char[] autoActivationCharacters = new char[]
{'.', '#'};
KeyStroke keyStroke;
try
{
keyStroke = KeyStroke.getInstance("Ctrl+Space"); //$NON-NLS-1$
ContentProposalAdapter adapter = new ContentProposalAdapter(sourceText,
new TextContentAdapter(), new FacetContentProposalProvider(_facade
.getAllReferenceFacetsRelItemFiltered(), _currentReference.getPdrId()),
keyStroke, autoActivationCharacters);
adapter.setLabelProvider(new AutoCompleteNameLabelProvider());
adapter.addContentProposalListener(new IContentProposalListener()
{
@Override
public void proposalAccepted(final IContentProposal proposal)
{
sourceText.setText(proposal.getContent());
if (((Facet) proposal).getKey() != null)
{
relItem.setId(((Facet) proposal).getKey());
PdrObject o = _facade.getPdrObject(new PdrId(((Facet) proposal).getKey()));
if (o != null)
{
decoValId.setImage(null);
sourceText.setText(o.getDisplayNameWithID());
// relItem.setId((sourceText.getText()));
}
else
{
relItem.setId(null);
decoValId.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage());
decoValId.setDescriptionText(NLMessages
.getString("Editor_missing_object_no_relation"));
}
}
}
});
}
catch (org.eclipse.jface.bindings.keys.ParseException e1)
{
e1.printStackTrace();
}
}
@Override
public void focusLost(final FocusEvent e)
{
if (relItem.getId() != null && _facade.getReference(new PdrId(relItem.getId())) != null)
{
decoValId.setDescriptionText("");
decoValId.setImage(null);
}
// else
// {
// relItem.setId(null);
// decoValId.setImage(FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage());
// decoValId.setDescriptionText("Missing PDR-Object. You cannot relate to a missing Object.");
// }
validate();
}
});
sourceText.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(final KeyEvent e)
{
}
@Override
public void keyReleased(final KeyEvent e)
{
if (sourceText.getText().length() == 23)
{
PdrObject o = _facade.getPdrObject(new PdrId(sourceText.getText()));
if (o != null)
{
decoValId.setImage(null);
relItem.setId(o.getPdrId().toString());
sourceText.setText(o.getDisplayNameWithID());
}
else
{
relItem.setId(null);
}
}
else if (sourceText.getText().length() == 0)
{
relItem.setId(null);
}
if (sourceText.getText().length() != 0 && relItem.getId() == null)
{
decoValId.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_ERROR).getImage());
decoValId.setDescriptionText(NLMessages.getString("Editor_missing_object_no_relation"));
}
}
});
Button relateRefButton = new Button(relatedItemComp, SWT.PUSH);
relateRefButton.setImage(_imageReg.get(IconsInternal.SEARCH));
relateRefButton.setEnabled(_mayWrite);
relateRefButton.setLayoutData(new GridData());
relateRefButton.setToolTipText(NLMessages
.getString("Editor_linkWithSource")); //$NON-NLS-1$
relateRefButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
IWorkbench workbench = PlatformUI.getWorkbench();
Display display = workbench.getDisplay();
Shell shell = new Shell(display);
SelectObjectDialog dialog = new SelectObjectDialog(shell, 2);
dialog.open();
if (_facade.getRequestedId() != null) {
relItem.setId(_facade.getRequestedId().toString());
if (relItem.getId().trim().length() > 0) {
PdrObject o = _facade.getReference(new PdrId(
relItem.getId()));
if (o != null) {
sourceText.setText(o.getDisplayNameWithID());
} else
sourceText.setText(relItem.getId());
}
} else {
sourceText.setText(""); //$NON-NLS-1$
}
}
});
Button newRefButton = new Button(relatedItemComp, SWT.PUSH);
newRefButton.setText(NLMessages.getString("Editor_create_new_ref"));
newRefButton.setToolTipText(NLMessages.getString("Editor_create_new_ref_tip"));
newRefButton.setImage(_imageReg.get(IconsInternal.REFERENCE_NEW));
newRefButton.setEnabled(_mayWrite);
newRefButton.setLayoutData(new GridData());
newRefButton.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent ev)
{
Event event = new Event();
event.data = _currentReference.getPdrId();
IHandlerService handlerService = (IHandlerService) PlatformUI.getWorkbench().getService(
IHandlerService.class);
try
{
handlerService.executeCommand("org.bbaw.pdr.ae.view.main.commands.NewReference", event); //$NON-NLS-1$
}
catch (ExecutionException e)
{
e.printStackTrace();
}
catch (NotDefinedException e)
{
e.printStackTrace();
}
catch (NotEnabledException e)
{
e.printStackTrace();
}
catch (NotHandledException e)
{
e.printStackTrace();
}
if (_facade.getCurrentReference() != null)
{
sourceText.setText(_facade.getCurrentReference().getDisplayNameWithID());
relItem.setId(_facade.getCurrentReference().getPdrId().toString());
}
}
});
newRefButton.pack();
final Button deleteRels = new Button(relatedItemComp, SWT.PUSH);
deleteRels.setText("-"); //$NON-NLS-1$
deleteRels.setToolTipText(NLMessages.getString("Editor_remove_field"));
deleteRels.setEnabled(_mayWrite);
deleteRels.setLayoutData(_gridData);
deleteRels.setData("id", i); //$NON-NLS-1$
deleteRels.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getRelatedItems().removeElementAt((Integer) deleteRels.getData("id")); //$NON-NLS-1$
loadValues(_currentReference);
}
});
deleteRels.setLayoutData(new GridData());
boolean relItemExtra = false;
if (relItem.getPart() != null)
{
Composite relatedExtraComp = new Composite(relatedItemComp, SWT.NONE);
relatedExtraComp.setLayoutData(new GridData());
((GridData) relatedExtraComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) relatedExtraComp.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) relatedExtraComp.getLayoutData()).horizontalSpan = 10;
relatedExtraComp.setLayout(new GridLayout());
((GridLayout) relatedExtraComp.getLayout()).numColumns = 10;
((GridLayout) relatedExtraComp.getLayout()).makeColumnsEqualWidth = false;
((GridLayout) relatedExtraComp.getLayout()).marginWidth = 0;
((GridLayout) relatedExtraComp.getLayout()).marginHeight = 0;
final DetailMods detailVolume = relItem.getPart().getDetailVolume();
if (detailVolume != null && detailVolume.getNumber() != null)
{
relItemExtra = true;
Label label30 = new Label(relatedExtraComp, SWT.RIGHT);
label30.setText(NLMessages.getString("Editor_volume_number"));
label30.setLayoutData(new GridData());
final Text volumeNumber = new Text(relatedExtraComp, SWT.BORDER);
volumeNumber.setEditable(_mayWrite);
volumeNumber.setBackground(WHITE_COLOR);
volumeNumber.setLayoutData(_gridData);
volumeNumber.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
}
@Override
public void focusLost(final FocusEvent e)
{
detailVolume.setNumber(volumeNumber.getText());
}
});
volumeNumber.setText(detailVolume.getNumber());
}
final DetailMods detailIssue = relItem.getPart().getDetailIssue();
if (detailIssue != null && detailIssue.getNumber() != null)
{
relItemExtra = true;
Label label31 = new Label(relatedExtraComp, SWT.RIGHT);
label31.setText(NLMessages.getString("Editor_issue_number"));
label31.setLayoutData(new GridData());
final Text issueNumber = new Text(relatedExtraComp, SWT.BORDER);
issueNumber.setEditable(_mayWrite);
issueNumber.setBackground(WHITE_COLOR);
issueNumber.setLayoutData(_gridData);
issueNumber.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
}
@Override
public void focusLost(final FocusEvent e)
{
detailIssue.setNumber(issueNumber.getText());
}
});
issueNumber.setText(detailIssue.getNumber());
}
final ExtendMods extendPages = relItem.getPart().getExtendPages();
if (extendPages != null)
{
relItemExtra = true;
Label label32 = new Label(relatedExtraComp, SWT.RIGHT);
label32.setText(NLMessages.getString("Editor_page"));
label32.setLayoutData(_gridData);
Label label33 = new Label(relatedExtraComp, SWT.RIGHT);
label33.setText(NLMessages.getString("Editor_page_start"));
label33.setLayoutData(_gridData);
final Text pagesStart = new Text(relatedExtraComp, SWT.BORDER);
pagesStart.setEditable(_mayWrite);
pagesStart.setBackground(WHITE_COLOR);
pagesStart.setLayoutData(_gridData);
pagesStart.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
}
@Override
public void focusLost(final FocusEvent e)
{
extendPages.setStart(pagesStart.getText());
}
});
if (extendPages.getStart() != null)
{
pagesStart.setText(extendPages.getStart());
}
Label label34 = new Label(relatedExtraComp, SWT.RIGHT);
label34.setText(NLMessages.getString("Editor_page_end"));
label34.setLayoutData(_gridData);
final Text pagesEnd = new Text(relatedExtraComp, SWT.BORDER);
pagesEnd.setEditable(_mayWrite);
pagesEnd.setBackground(WHITE_COLOR);
pagesEnd.setLayoutData(_gridData);
pagesEnd.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
}
@Override
public void focusLost(final FocusEvent e)
{
extendPages.setEnd(pagesEnd.getText());
}
});
if (extendPages.getEnd() != null)
{
pagesEnd.setText(extendPages.getEnd());
}
}
if (relItemExtra)
{
final Button delDate = new Button(relatedExtraComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
relItem.getPart().getDetails().removeAllElements();
relItem.getPart().getExtendsMods().removeAllElements();
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
if (relItem.getPart().getDates() != null && !relItem.getPart().getDates().isEmpty()
&& relItem.getPart().getDates().firstElement() != null)
{
Label label9 = new Label(relatedExtraComp, SWT.FILL);
label9.setText(NLMessages.getString("Editor_add_date_part"));
Label labelDay = new Label(relatedExtraComp, SWT.RIGHT);
labelDay.setText(NLMessages.getString("Editor_day"));
labelDay.setLayoutData(_gridDataRight);
final Combo comboTimeDay = new Combo(relatedExtraComp, SWT.READ_ONLY);
comboTimeDay.setEnabled(_mayWrite);
comboTimeDay.setBackground(WHITE_COLOR);
comboTimeDay.setLayoutData(new GridData());
((GridData) comboTimeDay.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeDay.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeDay.setItems(AEConstants.DAYS);
comboTimeDay.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
relItem.getPart().getDates().firstElement().setDay(comboTimeDay.getSelectionIndex());
}
});
Label labelMonth = new Label(relatedExtraComp, SWT.RIGHT);
labelMonth.setText(NLMessages.getString("Editor_month"));
labelMonth.setLayoutData(_gridData);
final Combo comboTimeMonth = new Combo(relatedExtraComp, SWT.READ_ONLY);
comboTimeMonth.setEnabled(_mayWrite);
comboTimeMonth.setBackground(WHITE_COLOR);
comboTimeMonth.setLayoutData(new GridData());
((GridData) comboTimeMonth.getLayoutData()).horizontalAlignment = GridData.FILL;
((GridData) comboTimeMonth.getLayoutData()).grabExcessHorizontalSpace = true;
comboTimeMonth.setItems(AEConstants.MONTHS);
comboTimeMonth.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
relItem.getPart().getDates().firstElement().setMonth(comboTimeMonth.getSelectionIndex());
}
});
Label labelYear = new Label(relatedExtraComp, SWT.RIGHT);
labelYear.setText(NLMessages.getString("Editor_year"));
labelYear.setLayoutData(_gridDataRight);
final YearSpinner spinnerTimeYear = new YearSpinner(relatedExtraComp, SWT.BORDER);
spinnerTimeYear.setEnabled(_mayWrite);
spinnerTimeYear.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent se)
{
relItem.getPart().getDates().firstElement().setYear(spinnerTimeYear.getSelection());
}
});
comboTimeDay.select(relItem.getPart().getDates().firstElement().getDay());
comboTimeMonth.select(relItem.getPart().getDates().firstElement().getMonth());
spinnerTimeYear.setSelection(relItem.getPart().getDates().firstElement().getYear());
final Button delDate = new Button(relatedExtraComp, SWT.PUSH);
delDate.setText("-"); //$NON-NLS-1$
delDate.setToolTipText(NLMessages.getString("Editor_remove_field"));
delDate.setEnabled(_mayWrite);
delDate.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
relItem.getPart().setDates(null);
loadValues(_currentReference);
}
});
delDate.setLayoutData(new GridData());
}
}
}
}
/**
* Load series title info.
* @param contentComp the content comp
*/
private void loadSeriesTitleInfo(final Composite contentComp)
{
Composite titleComp = new Composite(contentComp, SWT.NONE);
titleComp.setLayoutData(new GridData());
((GridData) titleComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) titleComp.getLayoutData()).grabExcessHorizontalSpace = true;
titleComp.setLayout(new GridLayout());
((GridLayout) titleComp.getLayout()).numColumns = 3;
((GridLayout) titleComp.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getSeriesTitleInfo().getTitle() != null)
{
Label label1 = new Label(titleComp, SWT.NONE);
label1.setText(NLMessages.getString("Editor_add_series") + " " + NLMessages.getString("Editor_title")); //$NON-NLS-1$
final Text stitel = new Text(titleComp, SWT.BORDER);
stitel.setEditable(_mayWrite);
stitel.setBackground(WHITE_COLOR);
stitel.setLayoutData(_gridData);
stitel.setText(_currentReference.getSeriesTitleInfo().getTitle().trim());
//
// {
// _titel.setText(NLMessages.getString("Editor_enterTitle")); //$NON-NLS-1$
// _decoValTi.setImage(FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED).getImage());
// }
stitel.addFocusListener(new FocusListener()
{
// FIXME Autocomplete
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "relatedItem", "title", null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(stitel, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getSeriesTitleInfo().setTitle(stitel.getText());
}
});
Button delSTitle = new Button(titleComp, SWT.PUSH);
delSTitle.setText("-"); //$NON-NLS-1$
delSTitle.setToolTipText(NLMessages.getString("Editor_remove_series_title"));
delSTitle.setEnabled(_mayWrite);
delSTitle.setLayoutData(_gridData);
delSTitle.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.setSeriesTitleInfo(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delSTitle.setLayoutData(new GridData());
}
if (_currentReference.getSeriesTitleInfo().getSubTitle() != null)
{
Composite titleComp2 = new Composite(contentComp, SWT.NONE);
titleComp2.setLayoutData(new GridData());
((GridData) titleComp2.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) titleComp2.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) titleComp2.getLayoutData()).horizontalSpan = 3;
titleComp2.setLayout(new GridLayout());
((GridLayout) titleComp2.getLayout()).numColumns = 4;
((GridLayout) titleComp2.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getSeriesTitleInfo().getSubTitle() != null)
{
Label label2 = new Label(titleComp2, SWT.NONE);
label2.setText(NLMessages.getString("Editor_add_series") + " "
+ NLMessages.getString("Editor_subtitle"));
final Text subSTitel = new Text(titleComp2, SWT.BORDER);
subSTitel.setEditable(_mayWrite);
subSTitel.setBackground(WHITE_COLOR);
subSTitel.setLayoutData(_gridData);
subSTitel.setText(_currentReference.getSeriesTitleInfo().getSubTitle().trim());
subSTitel.addFocusListener(new FocusListener()
{
// FIXME
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "relatedItem", "subTitle", null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(subSTitel, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getSeriesTitleInfo().setSubTitle(subSTitel.getText());
}
});
}
final Button delExtra = new Button(titleComp2, SWT.PUSH);
delExtra.setText("-"); //$NON-NLS-1$
delExtra.setToolTipText(NLMessages.getString("Editor_remove_subtitle"));
delExtra.setEnabled(_mayWrite);
delExtra.setLayoutData(_gridData);
delExtra.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getSeriesTitleInfo().setSubTitle(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delExtra.setLayoutData(new GridData());
}
if (_currentReference.getSeriesTitleInfo().getPartName() != null
&& _currentReference.getSeriesTitleInfo().getPartNumber() != null)
{
Composite titleComp2 = new Composite(contentComp, SWT.NONE);
titleComp2.setLayoutData(new GridData());
((GridData) titleComp2.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) titleComp2.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) titleComp2.getLayoutData()).horizontalSpan = 3;
titleComp2.setLayout(new GridLayout());
((GridLayout) titleComp2.getLayout()).numColumns = 5;
((GridLayout) titleComp2.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getSeriesTitleInfo().getPartName() != null)
{
Label label2 = new Label(titleComp2, SWT.NONE);
label2.setText(NLMessages.getString("Editor_add_series") + " " + NLMessages.getString("Editor_partName")); //$NON-NLS-1$
final Text partName = new Text(titleComp2, SWT.BORDER);
partName.setEditable(_mayWrite);
partName.setBackground(WHITE_COLOR);
partName.setLayoutData(_gridData);
partName.setText(_currentReference.getSeriesTitleInfo().getPartName().trim());
partName.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "relatedItem", "partName", null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(partName, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getSeriesTitleInfo().setPartName(partName.getText());
}
});
}
if (_currentReference.getSeriesTitleInfo().getPartNumber() != null)
{
Label label3 = new Label(titleComp2, SWT.NONE);
label3.setText(NLMessages.getString("Editor_add_series") + " " + NLMessages.getString("Editor_partNumber")); //$NON-NLS-1$
final Text partNum = new Text(titleComp2, SWT.BORDER);
partNum.setEditable(_mayWrite);
partNum.setBackground(WHITE_COLOR);
partNum.setLayoutData(_gridData);
partNum.setText(_currentReference.getSeriesTitleInfo().getPartNumber().trim());
partNum.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "relatedItem", "partNumber", null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(partNum, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getSeriesTitleInfo().setPartNumber(partNum.getText());
}
});
}
final Button delExtra = new Button(titleComp2, SWT.PUSH);
delExtra.setText("-"); //$NON-NLS-1$
delExtra.setToolTipText(NLMessages.getString("Editor_remove_partName"));
delExtra.setEnabled(_mayWrite);
delExtra.setLayoutData(_gridData);
delExtra.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getSeriesTitleInfo().setPartName(null); //$NON-NLS-1$
_currentReference.getSeriesTitleInfo().setPartNumber(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delExtra.setLayoutData(new GridData());
}
}
/**
* Load title info.
* @param contentComp the content comp
*/
private void loadTitleInfo(final Composite contentComp)
{
Composite titleComp = new Composite(contentComp, SWT.NONE);
titleComp.setLayoutData(new GridData());
((GridData) titleComp.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) titleComp.getLayoutData()).grabExcessHorizontalSpace = true;
titleComp.setLayout(new GridLayout());
((GridLayout) titleComp.getLayout()).numColumns = 3;
((GridLayout) titleComp.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getTitleInfo().getTitle() != null)
{
Label label1 = new Label(titleComp, SWT.NONE);
label1.setText(NLMessages.getString("Editor_title")); //$NON-NLS-1$
_titel = new Text(titleComp, SWT.BORDER);
_titel.setEditable(_mayWrite);
_titel.setBackground(WHITE_COLOR);
_decoValTi = new ControlDecoration(_titel, SWT.LEFT | SWT.TOP);
_titel.setLayoutData(_gridData);
_titel.setText(_currentReference.getTitleInfo().getTitle().trim());
_decoValTi.setImage(null);
_titel.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "title", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(_titel, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
if (!_asGenreEditor)
{
_currentReference.getTitleInfo().setTitle(_titel.getText().trim());
if (_currentReference.getTitleInfo().getTitle().trim().length() > 0)
{
_decoValTi.setImage(null);
}
else
{
_decoValTi.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED).getImage());
}
validate();
}
else
{
_currentReference.getTitleInfo().setTitle(_titel.getText());
}
}
});
_titel.addKeyListener(new KeyListener()
{
@Override
public void keyPressed(final KeyEvent arg0)
{
// TODO Auto-generated method stub
}
@Override
public void keyReleased(final KeyEvent e)
{
if (!_asGenreEditor)
{
_currentReference.getTitleInfo().setTitle(_titel.getText().trim());
if (_currentReference.getTitleInfo().getTitle().trim().length() > 0)
{
_decoValTi.setImage(null);
}
else
{
_decoValTi.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED).getImage());
}
validate();
}
else
{
_currentReference.getTitleInfo().setTitle(_titel.getText());
}
}
});
_delTitle = new Button(titleComp, SWT.PUSH);
_delTitle.setText("-"); //$NON-NLS-1$
_delTitle.setToolTipText(NLMessages.getString("Editor_remove_title"));
_delTitle.setEnabled(_mayWrite && _currentReference.isValid());
_delTitle.setLayoutData(_gridData);
_delTitle.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.setTitleInfo(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
_delTitle.setLayoutData(new GridData());
}
if (_currentReference.getTitleInfo().getSubTitle() != null)
{
Composite titleComp2 = new Composite(contentComp, SWT.NONE);
titleComp2.setLayoutData(new GridData());
((GridData) titleComp2.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) titleComp2.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) titleComp2.getLayoutData()).horizontalSpan = 3;
titleComp2.setLayout(new GridLayout());
((GridLayout) titleComp2.getLayout()).numColumns = 4;
((GridLayout) titleComp2.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getTitleInfo().getSubTitle() != null)
{
Label label2 = new Label(titleComp2, SWT.NONE);
label2.setText(NLMessages.getString("Editor_subtitle"));
_subTitel = new Text(titleComp2, SWT.BORDER);
_subTitel.setEditable(_mayWrite);
_subTitel.setBackground(WHITE_COLOR);
_subTitel.setLayoutData(_gridData);
_subTitel.setText(_currentReference.getTitleInfo().getSubTitle().trim());
_subTitel.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "subTitle", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(_subTitel, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getTitleInfo().setSubTitle(_subTitel.getText());
}
});
}
final Button delExtra = new Button(titleComp2, SWT.PUSH);
delExtra.setText("-"); //$NON-NLS-1$
delExtra.setToolTipText(NLMessages.getString("Editor_remove_subtitle"));
delExtra.setEnabled(_mayWrite);
delExtra.setLayoutData(_gridData);
delExtra.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getTitleInfo().setSubTitle(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delExtra.setLayoutData(new GridData());
}
if (_currentReference.getTitleInfo().getPartName() != null
&& _currentReference.getTitleInfo().getPartNumber() != null)
{
Composite titleComp2 = new Composite(contentComp, SWT.NONE);
titleComp2.setLayoutData(new GridData());
((GridData) titleComp2.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) titleComp2.getLayoutData()).grabExcessHorizontalSpace = true;
((GridData) titleComp2.getLayoutData()).horizontalSpan = 3;
titleComp2.setLayout(new GridLayout());
((GridLayout) titleComp2.getLayout()).numColumns = 5;
((GridLayout) titleComp2.getLayout()).makeColumnsEqualWidth = false;
if (_currentReference.getTitleInfo().getPartName() != null)
{
Label label2 = new Label(titleComp2, SWT.NONE);
label2.setText(NLMessages.getString("Editor_partName")); //$NON-NLS-1$
final Text partName = new Text(titleComp2, SWT.BORDER);
partName.setEditable(_mayWrite);
partName.setBackground(WHITE_COLOR);
partName.setLayoutData(_gridData);
partName.setText(_currentReference.getTitleInfo().getPartName().trim());
partName.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "partName", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(partName, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getTitleInfo().setPartName(partName.getText());
}
});
}
if (_currentReference.getTitleInfo().getPartNumber() != null)
{
Label label3 = new Label(titleComp2, SWT.NONE);
label3.setText(NLMessages.getString("Editor_partNumber")); //$NON-NLS-1$
final Text partNum = new Text(titleComp2, SWT.BORDER);
partNum.setEditable(_mayWrite);
partNum.setBackground(WHITE_COLOR);
partNum.setLayoutData(_gridData);
partNum.setText(_currentReference.getTitleInfo().getPartNumber().trim());
partNum.addFocusListener(new FocusListener()
{
@Override
public void focusGained(final FocusEvent e)
{
String[] vals = new String[]
{"test", "test2"}; //$NON-NLS-1$ //$NON-NLS-2$
try
{
vals = _mainSearcher.getFacets("reference", "partNumber", null, null, null); //$NON-NLS-1$ //$NON-NLS-2$
}
catch (Exception e1)
{
e1.printStackTrace();
}
new AutoCompleteField(partNum, new TextContentAdapter(), vals);
}
@Override
public void focusLost(final FocusEvent e)
{
_currentReference.getTitleInfo().setPartNumber(partNum.getText());
}
});
}
final Button delExtra = new Button(titleComp2, SWT.PUSH);
delExtra.setText("-"); //$NON-NLS-1$
delExtra.setToolTipText(NLMessages.getString("Editor_remove_partName"));
delExtra.setEnabled(_mayWrite);
delExtra.setLayoutData(_gridData);
delExtra.addSelectionListener(new SelectionAdapter()
{
@Override
public void widgetSelected(final SelectionEvent event)
{
_currentReference.getTitleInfo().setPartName(null); //$NON-NLS-1$
_currentReference.getTitleInfo().setPartNumber(null); //$NON-NLS-1$
loadValues(_currentReference);
}
});
delExtra.setLayoutData(new GridData());
}
}
/**
* Load values.
* @param currentRef the current ref
*/
public final void loadValues(final ReferenceMods currentRef)
{
_currentReference = currentRef;
if (_compositeRef == null)
{
_compositeRef = new Composite(_compositeSourcePanel, SWT.NONE);
}
_compositeRef.setLayoutData(new GridData());
((GridData) _compositeRef.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _compositeRef.getLayoutData()).grabExcessHorizontalSpace = true;
_compositeRef.setLayout(new GridLayout());
((GridLayout) _compositeRef.getLayout()).numColumns = 1;
((GridLayout) _compositeRef.getLayout()).makeColumnsEqualWidth = false;
((GridLayout) _compositeRef.getLayout()).marginHeight = 0;
_sourceStackLayout.topControl = _compositeRef;
_currentReference = currentRef;
if (!_asGenreEditor && _scrolledCompositeMain == null)
{
loadAdminData();
}
else
{
_mayWrite = true;
}
if (_mayWrite && _scrolledCompositeMain == null)
{
createAddButtons(_compositeRef);
}
else if (_mayWrite)
{
_addToolTip.setReference(_currentReference);
}
if (_scrolledCompositeMain != null)
{
_scrolledCompositeMain.dispose();
_scrolledCompositeMain = null;
}
_scrolledCompositeMain = new ScrolledComposite(_compositeRef, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
_scrolledCompositeMain.setExpandHorizontal(true);
_scrolledCompositeMain.setExpandVertical(true);
_scrolledCompositeMain.setMinHeight(1);
_scrolledCompositeMain.setMinWidth(1);
_scrolledCompositeMain.setLayout(new GridLayout());
_scrolledCompositeMain.setLayoutData(new GridData());
if (AEVIEWConstants.IS_SMALL_MONITOR_DIMENSION)
{
((GridData) _scrolledCompositeMain.getLayoutData()).heightHint = 235;
}else
{
((GridData) _scrolledCompositeMain.getLayoutData()).heightHint = 385;
}
((GridData) _scrolledCompositeMain.getLayoutData()).widthHint = 600;
((GridData) _scrolledCompositeMain.getLayoutData()).horizontalAlignment = SWT.FILL;
((GridData) _scrolledCompositeMain.getLayoutData()).grabExcessHorizontalSpace = true;
_scrolledCompositeMain.pack();
Composite contentComp = new Composite(_scrolledCompositeMain, SWT.NONE);
contentComp.setLayout(new GridLayout());
_scrolledCompositeMain.setContent(contentComp);
// if (_mayWrite) loadAddButtons(contentComp);
if (_currentReference.getNameMods() != null && _currentReference.getNameMods().size() > 0)
{
loadNames(contentComp);
}
if (_currentReference.getTitleInfo() != null)
{
loadTitleInfo(contentComp);
}
if (_currentReference.getSeriesTitleInfo() != null)
{
loadSeriesTitleInfo(contentComp);
}
if (!_asGenreEditor && _currentReference.getGenre() != null && _currentReference.getGenre().getGenre() != null)
{
@SuppressWarnings("unchecked")
ReferenceModsTemplate temp = ((HashMap<String, ReferenceModsTemplate>) _sourceGenreComboViewer.getInput())
.get(_currentReference.getGenre().getGenre());
if (temp != null && temp.getLabel() == null)
{
if (temp.getValue() != null)
{
temp.setLabel(temp.getValue());
}
}
if (temp == null || temp.getLabel() == null)
{
temp = new ReferenceModsTemplate();
temp.setLabel(_currentReference.getGenre().getGenre());
temp.setValue(_currentReference.getGenre().getGenre());
_sourceGenreComboViewer.add(temp);
}
StructuredSelection selection = new StructuredSelection(temp);
_sourceGenreComboViewer.setSelection(selection);
}
if (_currentReference.getOriginInfo() != null)
{
loadOriginInfo(contentComp);
}
if (_currentReference.getNote() != null)
{
loadNote(contentComp);
}
if (_currentReference.getIdentifiersMods() != null)
{
loadIdentifiers(contentComp);
}
if (_currentReference.getLocation() != null)
{
loadLocation(contentComp);
}
if (_currentReference.getAccessCondition() != null)
{
loadAccessCondition(contentComp);
}
if (_currentReference.getRelatedItems() != null
// && _currentReference.getRelatedItems().size() > 0
// && _currentReference.getRelatedItems().firstElement() != null
)
{
loadRelatedItems(contentComp);
}
validate();
_scrolledCompositeMain.setContent(contentComp);
Point point = contentComp.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
Point mp = _mainComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
if (point.x > mp.x - 40)
{
point.x = mp.x - 40;
}
_scrolledCompositeMain.setMinSize(point);
_scrolledCompositeMain.layout();
_compositeRef.redraw();
_compositeRef.layout();
_compositeRef.pack();
_compositeSourcePanel.layout();
_compositeSourcePanel.pack();
_mainComposite.layout();
_mainComposite.pack();
}
@Override
protected final void okPressed()
{
saveInput();
super.okPressed();
}
// We need to have the textFields into Strings because the UI gets disposed
// and the Text Fields are not accessible any more.
/**
* Save input.
*/
private void saveInput()
{
Revision revision = new Revision();
revision.setRevisor(new String(_facade.getCurrentUser().getDisplayName()));
revision.setTimeStamp(_facade.getCurrentDate());
revision.setAuthority(_facade.getCurrentUser().getPdrId().clone());
boolean isModifiedOrNew = false;
try
{
isModifiedOrNew = _idService.isModifiedOrNewObject(_currentReference.getPdrId());
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (!_currentReference.isNew() && !isModifiedOrNew)
{
revision.setRef(_currentReference.getRecord().getRevisions().size());
_currentReference.getRecord().getRevisions().add(revision);
_currentReference.setDirty(true);
}
else
{
_currentReference.getRecord().getRevisions().lastElement().setTimeStamp(_facade.getCurrentDate());
_currentReference.setDirty(true);
}
// hier wird injestet
try
{
_facade.saveReference(_currentReference);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public final void update(final Observable o, final Object arg)
{
loadValues(_currentReference);
}
/**
* Validate.
*/
public final void validate()
{
boolean valid = (_currentReference != null && _currentReference.isValid());
if (_currentReference.getNameMods() != null && !_currentReference.getNameMods().isEmpty())
{
if (_delTitle != null && !_delTitle.isDisposed())
{
_delTitle.setEnabled(_mayWrite);
}
if (_decoValTi != null && _decoValTi.getControl() != null && !_decoValTi.getControl().isDisposed())
{
_decoValTi.setImage(null);
}
}
else
{
if (_delTitle != null && !_delTitle.isDisposed())
{
_delTitle.setEnabled(false);
}
if (_decoValTi != null && _decoValTi.getControl() != null && !_decoValTi.getControl().isDisposed())
{
_decoValTi.setImage(FieldDecorationRegistry.getDefault()
.getFieldDecoration(FieldDecorationRegistry.DEC_REQUIRED).getImage());
}
}
if (_savebutton != null && !_savebutton.isDisposed())
{
_savebutton.setEnabled(valid && _mayWrite);
}
}
}