/*******************************************************************************
* Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.tools.workbench.mappingsplugin.ui.mapping.relational;
import java.awt.BorderLayout;
import javax.swing.BorderFactory;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import org.eclipse.persistence.tools.workbench.framework.context.WorkbenchContextHolder;
import org.eclipse.persistence.tools.workbench.framework.ui.view.AbstractPropertiesPage;
import org.eclipse.persistence.tools.workbench.mappingsmodel.mapping.MWDirectMapMapping;
import org.eclipse.persistence.tools.workbench.mappingsplugin.ui.mapping.ConverterPanel;
import org.eclipse.persistence.tools.workbench.uitools.app.PropertyAspectAdapter;
import org.eclipse.persistence.tools.workbench.uitools.app.PropertyValueModel;
final class RelationalDirectMapConverterPropertiesPage
extends AbstractPropertiesPage
{
RelationalDirectMapConverterPropertiesPage(PropertyValueModel converterMappingNodeHolder, WorkbenchContextHolder contextHolder) {
super(converterMappingNodeHolder, contextHolder);
}
protected void initializeLayout() {
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
ConverterPanel keyConverterPanel =
new ConverterPanel(
this.buildDirectKeyConverterHolder(),
this.buildDirectKeyConverterSetter(),
this.getWorkbenchContextHolder()
);
JScrollPane scrollPane = new JScrollPane(keyConverterPanel);
scrollPane.setBorder(null);
tabbedPane.addTab(
resourceRepository().getString("KEY_CONVERTER_TAB_TITLE"),
scrollPane
);
ConverterPanel valueConverterPanel =
new ConverterPanel(
this.buildDirectValueConverterHolder(),
this.buildDirectValueConverterSetter(),
this.getWorkbenchContextHolder()
);
scrollPane = new JScrollPane(valueConverterPanel);
scrollPane.setBorder(null);
tabbedPane.addTab(
resourceRepository().getString("VALUE_CONVERTER_TAB_TITLE"),
scrollPane
);
add(tabbedPane, BorderLayout.CENTER);
}
private PropertyValueModel buildDirectValueConverterHolder() {
return new PropertyAspectAdapter(getSelectionHolder(), MWDirectMapMapping.CONVERTER_PROPERTY) {
protected Object getValueFromSubject() {
return ((MWDirectMapMapping) subject).getConverter();
}
};
}
private ConverterPanel.ConverterSetter buildDirectValueConverterSetter() {
return new ConverterPanel.ConverterSetter() {
public String getType() {
return ((MWDirectMapMapping) selection()).getConverter().getType();
}
public void setNullConverter() {
((MWDirectMapMapping) selection()).setNullConverter();
}
public void setObjectTypeConverter() {
((MWDirectMapMapping) selection()).setObjectTypeConverter();
}
public void setSerializedObjectConverter() {
((MWDirectMapMapping) selection()).setSerializedObjectConverter();
}
public void setTypeConversionConverter() {
((MWDirectMapMapping) selection()).setTypeConversionConverter();
}
public String converterTypePropertyString() {
return MWDirectMapMapping.CONVERTER_PROPERTY;
}
};
}
private PropertyValueModel buildDirectKeyConverterHolder() {
return new PropertyAspectAdapter(getSelectionHolder(), MWDirectMapMapping.DIRECT_KEY_CONVERTER_PROPERTY) {
protected Object getValueFromSubject() {
return ((MWDirectMapMapping) subject).getDirectKeyConverter();
}
};
}
private ConverterPanel.ConverterSetter buildDirectKeyConverterSetter() {
return new ConverterPanel.ConverterSetter() {
public String getType() {
return ((MWDirectMapMapping) selection()).getDirectKeyConverter().getType();
}
public void setNullConverter() {
((MWDirectMapMapping) selection()).setNullDirectKeyConverter();
}
public void setObjectTypeConverter() {
((MWDirectMapMapping) selection()).setObjectTypeDirectKeyConverter();
}
public void setSerializedObjectConverter() {
((MWDirectMapMapping) selection()).setSerializedObjectDirectKeyConverter();
}
public void setTypeConversionConverter() {
((MWDirectMapMapping) selection()).setTypeConversionDirectKeyConverter();
}
public String converterTypePropertyString() {
return MWDirectMapMapping.DIRECT_KEY_CONVERTER_PROPERTY;
}
};
}
}