/*
* Copyright (c) 2008, 2015 , Oracle. All rights reserved.
*
* This software is the proprietary information of Oracle Corporation.
* Use is subject to license terms.
*/
package org.eclipse.persistence.tools.workbench.scplugin.ui.session.login;
import javax.swing.JComponent;
import org.eclipse.persistence.tools.workbench.framework.context.WorkbenchContextHolder;
import org.eclipse.persistence.tools.workbench.framework.ui.view.AbstractSubjectPanel;
import org.eclipse.persistence.tools.workbench.framework.uitools.SwingComponentFactory;
import org.eclipse.persistence.tools.workbench.scplugin.model.adapter.SequenceAdapter;
import org.eclipse.persistence.tools.workbench.uitools.app.PropertyAspectAdapter;
import org.eclipse.persistence.tools.workbench.uitools.app.PropertyValueModel;
import org.eclipse.persistence.tools.workbench.uitools.app.SimplePropertyValueModel;
import org.eclipse.persistence.tools.workbench.uitools.app.ValueModel;
/**
* @version 11.0.0
* @since 11.0.0
* @author Pascal Filion
*/
abstract class SequencePropertyPane extends AbstractSubjectPanel
{
/**
* Creates a new <code>SequencePropertyPane</code>.
*
* @param subjectHolder The holder of <code>SequenceAdapter</code>
* @param workbenchContextHolder The holder of the <code>WorkbenchContext</code>,
* used to retrieve the localized string, active window, etc
*/
SequencePropertyPane(ValueModel subjectHolder,
WorkbenchContextHolder workbenchContextHolder)
{
super(subjectHolder, workbenchContextHolder);
}
private PropertyValueModel buildPreallocationSizeHolder()
{
return new PropertyAspectAdapter(getSubjectHolder(), SequenceAdapter.PREALLOCATION_SIZE_PROPERTY)
{
@Override
protected Object getValueFromSubject()
{
return Integer.valueOf(((SequenceAdapter)subject).getPreallocationSize());
}
@Override
protected void setValueOnSubject(Object value)
{
if (value == null) {
((SequenceAdapter)subject).setPreallocationSize(0);
} else {
((SequenceAdapter)subject).setPreallocationSize(((Integer)value).intValue());
}
}
};
}
final JComponent buildPreallocationSizeWidgets()
{
return SwingComponentFactory.buildLabeledSpinnerNumber
(
"SEQUENCE_PANE_PREALLOCATION_SIZE_LABEL",
getSubjectHolder(),
buildPreallocationSizeHolder(),
new SimplePropertyValueModel(new Integer(50)),
new Integer(0),
Integer.MAX_VALUE,
new Integer(1),
6,
resourceRepository(),
getAlignLeftGroup(),
getAlignRightGroup()
);
}
}