
io.github.jeddict.jpa.modeler.properties.joincolumn.JoinColumnPanel Maven / Gradle / Ivy
/**
* Copyright 2013-2022 the original author or authors from the Jeddict project (https://jeddict.github.io/).
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package io.github.jeddict.jpa.modeler.properties.joincolumn;
import javax.swing.JOptionPane;
import io.github.jeddict.jpa.spec.JoinColumn;
import org.netbeans.modeler.properties.EntityComponent;
import org.netbeans.modeler.properties.spec.Entity;
import org.netbeans.modeler.properties.spec.RowValue;
public class JoinColumnPanel extends EntityComponent {
private final io.github.jeddict.jpa.spec.Entity entity;
public JoinColumnPanel(io.github.jeddict.jpa.spec.Entity entity) {
this.entity = entity;
}
@Override
public void postConstruct() {
initComponents();
}
@Override
public void init() {
}
@Override
public void createEntity(Class extends Entity> entityWrapperType) {
this.setTitle("Create new JoinColumn");
if (entityWrapperType == RowValue.class) {
this.setEntity(new RowValue(new Object[4]));
}
name_TextField.setText("");
referencedColumnName_TextField.setText("");
table_TextField.setText("");
columnDefinition_TextArea.setText("");
unique_CheckBox.setSelected(false);
nullable_CheckBox.setSelected(true);
insertable_CheckBox.setSelected(true);
updatable_CheckBox.setSelected(true);
// JPAModelerUtil.initReferencedColumnModel(referencedColumnName_ComboBox, entity, null);
}
@Override
public void updateEntity(Entity entityValue) {
this.setTitle("Update JoinColumn");
if (entityValue.getClass() == RowValue.class) {
this.setEntity(entityValue);
Object[] row = ((RowValue) entityValue).getRow();
JoinColumn joinColumn = (JoinColumn) row[0];
name_TextField.setText(joinColumn.getName());
// JPAModelerUtil.initReferencedColumnModel(referencedColumnName_ComboBox, entity, joinColumn.getReferencedColumn());
referencedColumnName_TextField.setText(joinColumn.getReferencedColumnName());
table_TextField.setText(joinColumn.getTable());
columnDefinition_TextArea.setText(joinColumn.getColumnDefinition());
unique_CheckBox.setSelected(joinColumn.getUnique());
nullable_CheckBox.setSelected(joinColumn.getNullable());
insertable_CheckBox.setSelected(joinColumn.getInsertable());
updatable_CheckBox.setSelected(joinColumn.getUpdatable());
}
}
//
// public static void initReferencedColumnModel(javax.swing.JComboBox columnComboBox, Entity entity, Id selectedColumn) {
// columnComboBox.setEditable(true);
// columnComboBox.removeAllItems();
// columnComboBox.addItem(new ComboBoxValue(null, ""));
// if (entity != null) {
//// entity.getAttributes().getBasic().forEach((basic) -> {
//// if (basic.getColumn() != null && org.apache.commons.lang3.StringUtils.isNotBlank(basic.getColumn().getName())) {
//// columnComboBox.addItem(new ComboBoxValue(basic, basic.getColumn().getName()));
//// } else {
//// columnComboBox.addItem(new ComboBoxValue(basic, basic.getName()));
//// }
//// });
// int i = 0;
// int selectedItemIndex = -1;
// for (Id id : entity.getAttributes().getId()) {
// String columnName = id.getReferenceColumnName();
// columnComboBox.addItem(new ComboBoxValue(id, columnName));
// if (id == selectedColumn) {
// selectedItemIndex = ++i;
// }
// }
// columnComboBox.setSelectedIndex(selectedItemIndex);
// }
// }
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
jLayeredPane1 = new javax.swing.JLayeredPane();
name_LayeredPane = new javax.swing.JLayeredPane();
name_Label = new javax.swing.JLabel();
name_TextField = new javax.swing.JTextField();
table_LayeredPane = new javax.swing.JLayeredPane();
table_Label = new javax.swing.JLabel();
table_TextField = new javax.swing.JTextField();
referencedColumnName_LayeredPane = new javax.swing.JLayeredPane();
referencedColumnName_Label = new javax.swing.JLabel();
referencedColumnName_TextField = new javax.swing.JTextField();
columnDefinition_LayeredPane = new javax.swing.JLayeredPane();
columnDefinition_Label = new javax.swing.JLabel();
columnDefinition_ScrollPane = new javax.swing.JScrollPane();
columnDefinition_TextArea = new javax.swing.JTextArea();
layeredPane = new javax.swing.JLayeredPane();
nullable_CheckBox = new javax.swing.JCheckBox();
updatable_CheckBox = new javax.swing.JCheckBox();
insertable_CheckBox = new javax.swing.JCheckBox();
unique_CheckBox = new javax.swing.JCheckBox();
jLayeredPane8 = new javax.swing.JLayeredPane();
save_Button = new javax.swing.JButton();
cancel_Button = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
name_LayeredPane.setToolTipText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.name_LayeredPane.toolTipText")); // NOI18N
name_LayeredPane.setPreferredSize(new java.awt.Dimension(170, 27));
name_LayeredPane.setLayout(new java.awt.BorderLayout());
org.openide.awt.Mnemonics.setLocalizedText(name_Label, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.name_Label.text")); // NOI18N
name_Label.setPreferredSize(new java.awt.Dimension(90, 14));
name_LayeredPane.add(name_Label, java.awt.BorderLayout.WEST);
name_TextField.setText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.name_TextField.text")); // NOI18N
name_TextField.setToolTipText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.name_TextField.toolTipText")); // NOI18N
name_LayeredPane.add(name_TextField, java.awt.BorderLayout.CENTER);
table_LayeredPane.setPreferredSize(new java.awt.Dimension(170, 27));
table_LayeredPane.setLayout(new java.awt.BorderLayout());
org.openide.awt.Mnemonics.setLocalizedText(table_Label, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.table_Label.text")); // NOI18N
table_Label.setPreferredSize(new java.awt.Dimension(90, 14));
table_LayeredPane.add(table_Label, java.awt.BorderLayout.WEST);
table_TextField.setText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.table_TextField.text")); // NOI18N
table_LayeredPane.add(table_TextField, java.awt.BorderLayout.CENTER);
referencedColumnName_LayeredPane.setPreferredSize(new java.awt.Dimension(170, 27));
referencedColumnName_LayeredPane.setLayout(new java.awt.BorderLayout());
org.openide.awt.Mnemonics.setLocalizedText(referencedColumnName_Label, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.referencedColumnName_Label.text")); // NOI18N
referencedColumnName_Label.setPreferredSize(new java.awt.Dimension(90, 14));
referencedColumnName_LayeredPane.add(referencedColumnName_Label, java.awt.BorderLayout.WEST);
referencedColumnName_TextField.setText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.referencedColumnName_TextField.text")); // NOI18N
referencedColumnName_LayeredPane.add(referencedColumnName_TextField, java.awt.BorderLayout.CENTER);
columnDefinition_LayeredPane.setLayout(new java.awt.BorderLayout());
org.openide.awt.Mnemonics.setLocalizedText(columnDefinition_Label, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.columnDefinition_Label.text")); // NOI18N
columnDefinition_Label.setPreferredSize(new java.awt.Dimension(90, 14));
columnDefinition_LayeredPane.add(columnDefinition_Label, java.awt.BorderLayout.WEST);
columnDefinition_TextArea.setColumns(20);
columnDefinition_TextArea.setRows(5);
columnDefinition_ScrollPane.setViewportView(columnDefinition_TextArea);
columnDefinition_LayeredPane.add(columnDefinition_ScrollPane, java.awt.BorderLayout.CENTER);
layeredPane.setLayout(new java.awt.GridLayout(1, 4));
org.openide.awt.Mnemonics.setLocalizedText(nullable_CheckBox, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.nullable_CheckBox.text")); // NOI18N
layeredPane.add(nullable_CheckBox);
org.openide.awt.Mnemonics.setLocalizedText(updatable_CheckBox, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.updatable_CheckBox.text")); // NOI18N
layeredPane.add(updatable_CheckBox);
org.openide.awt.Mnemonics.setLocalizedText(insertable_CheckBox, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.insertable_CheckBox.text")); // NOI18N
layeredPane.add(insertable_CheckBox);
org.openide.awt.Mnemonics.setLocalizedText(unique_CheckBox, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.unique_CheckBox.text")); // NOI18N
layeredPane.add(unique_CheckBox);
org.openide.awt.Mnemonics.setLocalizedText(save_Button, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.save_Button.text")); // NOI18N
save_Button.setToolTipText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.save_Button.toolTipText")); // NOI18N
save_Button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
save_ButtonActionPerformed(evt);
}
});
jLayeredPane8.add(save_Button);
save_Button.setBounds(20, 0, 70, 30);
org.openide.awt.Mnemonics.setLocalizedText(cancel_Button, org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.cancel_Button.text")); // NOI18N
cancel_Button.setToolTipText(org.openide.util.NbBundle.getMessage(JoinColumnPanel.class, "JoinColumnPanel.cancel_Button.toolTipText")); // NOI18N
cancel_Button.setPreferredSize(new java.awt.Dimension(60, 23));
cancel_Button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancel_ButtonActionPerformed(evt);
}
});
jLayeredPane8.add(cancel_Button);
cancel_Button.setBounds(100, 0, 70, 30);
jLayeredPane1.setLayer(name_LayeredPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLayeredPane1.setLayer(table_LayeredPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLayeredPane1.setLayer(referencedColumnName_LayeredPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLayeredPane1.setLayer(columnDefinition_LayeredPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLayeredPane1.setLayer(layeredPane, javax.swing.JLayeredPane.DEFAULT_LAYER);
jLayeredPane1.setLayer(jLayeredPane8, javax.swing.JLayeredPane.DEFAULT_LAYER);
javax.swing.GroupLayout jLayeredPane1Layout = new javax.swing.GroupLayout(jLayeredPane1);
jLayeredPane1.setLayout(jLayeredPane1Layout);
jLayeredPane1Layout.setHorizontalGroup(
jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jLayeredPane1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(table_LayeredPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(name_LayeredPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(referencedColumnName_LayeredPane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(columnDefinition_LayeredPane)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jLayeredPane1Layout.createSequentialGroup()
.addGap(0, 170, Short.MAX_VALUE)
.addGroup(jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 184, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(layeredPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 550, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
jLayeredPane1Layout.setVerticalGroup(
jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jLayeredPane1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(name_LayeredPane, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(referencedColumnName_LayeredPane, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(table_LayeredPane, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(columnDefinition_LayeredPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(layeredPane, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLayeredPane8, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane1)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLayeredPane1)
);
pack();
}// //GEN-END:initComponents
private boolean validateField() {
if (this.name_TextField.getText().trim().length() <= 0 /*|| Pattern.compile("[^\\w-]").matcher(this.id_TextField.getText().trim()).find()*/) {
JOptionPane.showMessageDialog(this, "Parameter column name can't be empty", "Invalid Value", javax.swing.JOptionPane.WARNING_MESSAGE);
return false;
}//I18n
// if (this.referencedColumnName_TextField.getText().trim().length() <= 0 /*|| Pattern.compile("[^\\w-]").matcher(this.id_TextField.getText().trim()).find()*/) {
// JOptionPane.showMessageDialog(this, "Parameter referenced column name can't be empty", "Invalid Value", javax.swing.JOptionPane.WARNING_MESSAGE);
// return false;
// }//I18n
return true;
}
private void save_ButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_save_ButtonActionPerformed
if (!validateField()) {
return;
}
JoinColumn joinColumn = null;
if (this.getEntity().getClass() == RowValue.class) {
Object[] row = ((RowValue) this.getEntity()).getRow();
if (row[0] == null) {
joinColumn = new JoinColumn();
} else {
joinColumn = (JoinColumn) row[0];
}
}
joinColumn.setName(name_TextField.getText());
joinColumn.setReferencedColumnName(referencedColumnName_TextField.getText());
// Object selectedItem = referencedColumnName_ComboBox.getSelectedItem();
// if (selectedItem != null && selectedItem instanceof ComboBoxValue) {
// joinColumn.setReferencedColumn((Id) ((ComboBoxValue) selectedItem).getValue());
//// } else if (selectedItem != null) {
//// joinColumn.setReferencedColumnName(selectedItem.toString());
// } else {
// joinColumn.setReferencedColumn(null);
// }
joinColumn.setTable(table_TextField.getText());
joinColumn.setColumnDefinition(columnDefinition_TextArea.getText());
joinColumn.setUnique(unique_CheckBox.isSelected());
joinColumn.setNullable(nullable_CheckBox.isSelected());
joinColumn.setInsertable(insertable_CheckBox.isSelected());
joinColumn.setUpdatable(updatable_CheckBox.isSelected());
if (this.getEntity().getClass() == RowValue.class) {
Object[] row = ((RowValue) this.getEntity()).getRow();
row[0] = joinColumn;
row[1] = joinColumn.getName();
row[2] = joinColumn.getReferencedColumnName();//for representation
}
saveActionPerformed(evt);
}//GEN-LAST:event_save_ButtonActionPerformed
private void cancel_ButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancel_ButtonActionPerformed
cancelActionPerformed(evt);
}//GEN-LAST:event_cancel_ButtonActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton cancel_Button;
private javax.swing.JLabel columnDefinition_Label;
private javax.swing.JLayeredPane columnDefinition_LayeredPane;
private javax.swing.JScrollPane columnDefinition_ScrollPane;
private javax.swing.JTextArea columnDefinition_TextArea;
private javax.swing.JCheckBox insertable_CheckBox;
private javax.swing.JLayeredPane jLayeredPane1;
private javax.swing.JLayeredPane jLayeredPane8;
private javax.swing.JLayeredPane layeredPane;
private javax.swing.JLabel name_Label;
private javax.swing.JLayeredPane name_LayeredPane;
private javax.swing.JTextField name_TextField;
private javax.swing.JCheckBox nullable_CheckBox;
private javax.swing.JLabel referencedColumnName_Label;
private javax.swing.JLayeredPane referencedColumnName_LayeredPane;
private javax.swing.JTextField referencedColumnName_TextField;
private javax.swing.JButton save_Button;
private javax.swing.JLabel table_Label;
private javax.swing.JLayeredPane table_LayeredPane;
private javax.swing.JTextField table_TextField;
private javax.swing.JCheckBox unique_CheckBox;
private javax.swing.JCheckBox updatable_CheckBox;
// End of variables declaration//GEN-END:variables
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy