Package xgenerator.ui.swing.adapter

Source Code of xgenerator.ui.swing.adapter.MetadataAdapter

package xgenerator.ui.swing.adapter;

import java.awt.Component;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Icon;
import javax.swing.JOptionPane;

import xgenerator.model.ModelMetadata;
import xgenerator.ui.swing.JGeneratorFrame;
import xgenerator.ui.swing.MetadataTable;
import xgenerator.ui.swing.model.MetadataTableModel;
import xgenerator.util.NotationUtils;
import xgenerator.util.StringUtils;

/**
* <p>
* Title:
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2012
* </p>
* <p>
* Company: liss
* </p>
* @author <a href="mailto:shushanlee@msn.com">liss</a>
* @version 1.0
* @see
* @since   1.0
*/
public class MetadataAdapter extends AbstractAction {
 
  /**
   * Serializable
   */
  private static final long serialVersionUID = 1L;
 
  /**
   * 查询actionCommand
   */
  public static final String QUERY_METADATA_COMMAND = "QUERY_METADATA_COMMAND";

  /**
   * UI界面
   */
  private Component ui;

  /**
   * constructor
   * @param ui
   */
  public MetadataAdapter(Component ui) {
    this(ui, null);
  }
 
  /**
   * constructor
   * @param ui
   * @param name
   */
  public MetadataAdapter(Component ui, String name) {
    this(ui, name, null);
  }
 
  /**
   * constructor
   * @param ui
   * @param name
   * @param icon
   */
  public MetadataAdapter(Component ui, String name, Icon icon) {
    super(name, icon);
    this.ui = ui;
  }

  /**
   * <p>
   * Title:
   * </p>
   * @author <a href="mailto:shushanlee@msn.com">liss</a>
   * @param e
   * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
   */
  public void actionPerformed(ActionEvent e) {
    if(QUERY_METADATA_COMMAND.equals(e.getActionCommand())) {
      queryMetadata(e);
    }
  }
 
  /**
   * <p>
   * Title:
   * </p>
   * @author <a href="mailto:shushanlee@msn.com">liss</a>
   * @param e
   */
  public void queryMetadata(ActionEvent e) {
    JGeneratorFrame generatorGui = (JGeneratorFrame) ui;

    try {
      Object dataSourceNameObj = generatorGui.getDataSourceComboBox().getSelectedItem();
      Object tableNameObj = generatorGui.getTableComboBox().getSelectedItem();
      String dataSourceName = null != dataSourceNameObj ? dataSourceNameObj.toString() : null;
      String tableName = null != tableNameObj ? tableNameObj.toString() : null;
      System.out.println("dataSourceName=" + dataSourceName + " | tableName=" + tableName);
      if(StringUtils.isBlank(dataSourceName)) {
        throw new RuntimeException("请选择数据源!");
      }
      if(StringUtils.isBlank(tableName)) {
        throw new RuntimeException("请选择数据表!");
      }

      generatorGui.getStatusLabel().setText("数据源:" + dataSourceName + " 模型:" + tableName + " 正在加载元数据...");
     
      MetadataTable metadataTable = generatorGui.getMetadataTable();
      MetadataTableModel metadataTableModel = (MetadataTableModel) metadataTable.getModel();
      /*
       * 必须先设置TableModel,然后再设置TableColumnModel 在这里
       */
//      metadataTable.setModel(metadataTableModel); //在这里metadataTableModel没有变
//      metadataTable.setColumnModel(metadataTable.setPreferredTableColumnStyle());
     
      ModelMetadata modelMetadata = metadataTableModel.updateDataVector(dataSourceName, tableName);
      metadataTable.setPreferredTableColumnStyle();
      metadataTable.revalidate();
      metadataTable.updateUI();

      String filterTableNamePrefix = generatorGui.getFilterTableNamePrefixField().getText();
      String filterTableNameSuffix = generatorGui.getFilterTableNameSufferField().getText();
//      String filterColumnNamePrefix = generatorGui.getFilterColumnNamePrefixField().getText();
     
      generatorGui.getMetadataModelNameField().setText(tableName);
      generatorGui.getJavaModelNameField().setText(NotationUtils.upperCamelCase(tableName, NotationUtils.DEFAULT_NOTATION_SEPARATOR, filterTableNamePrefix, filterTableNameSuffix));
      generatorGui.getModelDescriptionField().setText(modelMetadata.getModelDescription());
      generatorGui.getStatusLabel().setText("数据源:" + dataSourceName + " 模型:" + tableName + " 加载元数据成功!");
    } catch (Exception ex) {
      ex.printStackTrace();
      generatorGui.getStatusLabel().setText(ex.getMessage());
      JOptionPane.showMessageDialog(ui, ex.getMessage());
    }
  }

  /**
   * <p>
   * Title:
   * </p>
   * @author <a href="mailto:shushanlee@msn.com">liss</a>
   * @return
   */
  public Component getUI() {
    return ui;
  }

  /**
   * <p>
   * Title:
   * </p>
   * @author <a href="mailto:shushanlee@msn.com">liss</a>
   * @param ui
   */
  public void setUI(Component ui) {
    this.ui = ui;
  }

}
TOP

Related Classes of xgenerator.ui.swing.adapter.MetadataAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.