Package xgenerator.ui.swing.adapter

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

/**
* GenerateAdapter.java
* 2011-11-20 上午11:50:20
*/
package xgenerator.ui.swing.adapter;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.util.ArrayList;
import java.util.List;

import javax.swing.AbstractAction;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.table.TableModel;

import xgenerator.factory.GeneratorFactory;
import xgenerator.generators.Generator;
import xgenerator.model.FieldMetadata;
import xgenerator.model.ModelMetadata;
import xgenerator.ui.swing.JGeneratorFrame;
import xgenerator.ui.swing.MetadataTable;
import xgenerator.ui.swing.model.ConstraintTypeComboBoxModel;
import xgenerator.ui.swing.model.SqlDataTypeComboBoxModel;
import xgenerator.ui.swing.model.MetadataTableModel;
import xgenerator.util.NotationUtils;
import xgenerator.util.StringUtils;

/**
* <p>
* Title:类的中文名
* </p>
* <p>
* Description:具体功能见各方法描述
* </p>
* <p>
* Copyright:Copyright (c) 2011
* </p>
*
* @author <a href="mailto:lishushan@gmail.com">liss</a>
* @version 1.0
*/
public class GenerateAdapter extends AbstractAction {
 
  /**
   * Serializable
   */
  private static final long serialVersionUID = 1L;
 
  /**
   * GENERATE_CODE_COMMAND
   */
  public static final String GENERATE_CODE_COMMAND = "GENERATE_CODE_COMMAND";

  /**
   * UI组件
   */
  private Component ui;

  /**
   * constructor
   * @param ui
   */
  public GenerateAdapter(Component ui) {
    this.ui = ui;
  }

  /**
   * <p>
   * Title:功能方法名
   * </p>
   * <p>
   * Description:方法功能描述,示例代码
   * </p>
   *
   * @param e
   * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
   */
  public void actionPerformed(ActionEvent e) {
    JGeneratorFrame generatorGui = (JGeneratorFrame) ui;
   
    try {
      MetadataTable metadataTable = generatorGui.getMetadataTable();
      TableModel metadataTableModel = metadataTable.getModel();
     
      final ModelMetadata modelMetadata = new ModelMetadata();
      final List<FieldMetadata> fieldMetadatas = new ArrayList<FieldMetadata>();
      modelMetadata.setFieldMetadatas(fieldMetadatas);
     
      /*
       * 获取表格数据
       */
      int rowCount = metadataTableModel.getRowCount();
      for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {
        final FieldMetadata oneFieldMetadata = new FieldMetadata();
       
        final Object columnName = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.COLUMN_NAME_INDEX);
        final Object propertyNameObj = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.PROPERTY_NAME_INDEX);
        final Object displayName = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.DISPLAY_NAME_INDEX);
        final Object comments = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.COMMENTS_INDEX);
        final Object sqlDataTypeObj = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.SQL_DATA_TYPE_INDEX);
        final Object dataLengthObj = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.DATA_LENGTH_INDEX);
        final Object dataPrecisionObj = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.DATA_PRECISION_INDEX);
        final Object dataScaleObj = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.DATA_SCALE_INDEX);
        final Object propertyTypeObj = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.PROPERTY_TYPE_INDEX);
        final Object nullable = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.NULLABLE_INDEX);
        final Object dataDefault = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.DATA_DEFAULT_INDEX);
        final Object keyField = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.IS_KEY_FIELD_INDEX);
        final Object constraintType = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.CONSTRAINT_TYPE_INDEX);
        final Object referencingTable = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.REFERENCING_TABLE_INDEX);
        final Object referencingColumn = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.REFERENCING_COLUMN_INDEX);
        final Object deleteRule = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.DELETE_RULE_INDEX);
        final Object queryField = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.IS_QUERY_FIELD_INDEX);
        final Object queryMode = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.QUERY_MODE_INDEX);
        final Object componentType = metadataTableModel.getValueAt(rowIndex, MetadataTableModel.COMPONENT_TYPE_INDEX);
       
        oneFieldMetadata.setColumnName(StringUtils.toString(columnName));
        String propertyName = StringUtils.toString(propertyNameObj);
        oneFieldMetadata.setPropertyName(propertyName);
        oneFieldMetadata.setPropertyNameLowerCamelCase((NotationUtils.smallFirst(propertyName)));
        oneFieldMetadata.setPropertyNameUpperCamelCase((NotationUtils.capFirst(propertyName)));
        oneFieldMetadata.setPropertyNameUnderscore(NotationUtils.underscore(StringUtils.toString(columnName)));
        oneFieldMetadata.setPropertyNameStudlyCaps(NotationUtils.studlyCaps(propertyName));
        oneFieldMetadata.setDisplayName(StringUtils.toString(displayName));
        oneFieldMetadata.setComments(StringUtils.toString(comments));
        String sqlDataType = StringUtils.toString(sqlDataTypeObj);
        oneFieldMetadata.setSqlDataType(sqlDataType);
       
        if(null != dataLengthObj) {
          try {
            oneFieldMetadata.setDataLength(Integer.parseInt(StringUtils.toString(dataLengthObj)));
          } catch (Exception ex) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DATA_LENGTH_INDEX] + "格式错误!");
          }
        }
        if(null != dataPrecisionObj) {
          try {
            oneFieldMetadata.setDataPrecision(Integer.parseInt(StringUtils.toString(dataPrecisionObj)));
          } catch (Exception ex) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DATA_PRECISION_INDEX] + "格式错误!");
          }
        }
        if(null != dataScaleObj) {
          try {
            oneFieldMetadata.setDataScale(Integer.parseInt(StringUtils.toString(dataScaleObj)));
          } catch (Exception ex) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DATA_SCALE_INDEX] + "格式错误!");
          }
        }

        oneFieldMetadata.setPropertyType(StringUtils.toString(propertyTypeObj));
        oneFieldMetadata.setNullable(Boolean.parseBoolean(StringUtils.toString(nullable)));
        oneFieldMetadata.setDataDefault(StringUtils.toString(dataDefault));
        oneFieldMetadata.setKeyField(Boolean.parseBoolean(StringUtils.toString(keyField)));
        oneFieldMetadata.setConstraintType(StringUtils.toString(constraintType));
        oneFieldMetadata.setReferencingTable(StringUtils.toString(referencingTable));
        oneFieldMetadata.setReferencingColumn(StringUtils.toString(referencingColumn));
        oneFieldMetadata.setDeleteRule(StringUtils.toString(deleteRule));
        oneFieldMetadata.setQueryField(Boolean.parseBoolean(StringUtils.toString(queryField)));
        oneFieldMetadata.setQueryMode(StringUtils.toString(queryMode));
        oneFieldMetadata.setComponentType(StringUtils.toString(componentType));
       
        fieldMetadatas.add(oneFieldMetadata);
      }
     
      /*
       * 2、验证表格数据
       */
      for (int rowIndex = 0; rowIndex < fieldMetadatas.size(); rowIndex++) {
        final FieldMetadata oneFieldMetadata = fieldMetadatas.get(rowIndex);
       
        //列名
        if(StringUtils.isBlank(oneFieldMetadata.getColumnName())) {
          throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.COLUMN_NAME_INDEX] + "不能为空!");
        }
        //属性名
        if(StringUtils.isBlank(oneFieldMetadata.getPropertyName())) {
          throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.PROPERTY_NAME_INDEX] + "不能为空!");
        }
        //列描述
        if(StringUtils.isBlank(oneFieldMetadata.getDisplayName())) {
          throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DISPLAY_NAME_INDEX] + "不能为空!");
        }
        //数据类型
        String columnType = oneFieldMetadata.getSqlDataType();
        if(StringUtils.isBlank(columnType)) {
          throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.SQL_DATA_TYPE_INDEX] + "不能为空!");
        }
        //数据类型长度、浮点长度
        if (SqlDataTypeComboBoxModel.DATE_TYPE.equalsIgnoreCase(columnType)) {
          /*
          if(null != oneFieldMetadata.getDataLength()) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行,DATE类型" + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DATA_LENGTH_INDEX] + "必须为空!");
          }
          if(null != oneFieldMetadata.getDataScale()) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行,DATE类型" + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DATA_PRECISION_INDEX] + "必须为空!");
          }
          */
        } else {
          if(null == oneFieldMetadata.getDataLength()) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DATA_LENGTH_INDEX] + "不能为空!");
          }
//          if(null == oneFieldMetadata.getFloatLength()) {
//            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行,浮点长度不能为空!");
//          }
        }
        if(oneFieldMetadata.isKeyField()) {
          if (StringUtils.isBlank(oneFieldMetadata.getConstraintType())) {
            throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.CONSTRAINT_TYPE_INDEX] + "不能为空!");
          }
          if(ConstraintTypeComboBoxModel.FK_TYPE.equalsIgnoreCase(oneFieldMetadata.getConstraintType())) {
            if (StringUtils.isBlank(oneFieldMetadata.getReferencingTable())) {
              throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.REFERENCING_TABLE_INDEX] + "不能为空!");
            }
            if (StringUtils.isBlank(oneFieldMetadata.getReferencingColumn())) {
              throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.REFERENCING_COLUMN_INDEX] + "不能为空!");
            }
            if (StringUtils.isBlank(oneFieldMetadata.getDeleteRule())) {
              throw new IllegalArgumentException("元数据第" + (rowIndex + 1) + "行," + MetadataTableModel.COLUMN_NAMES[MetadataTableModel.DELETE_RULE_INDEX] + "不能为空!");
            }
          }
        }
      }// end of for loop

      /*
       * 获取代码生成选项数据
       */
      final String metadataModelName = generatorGui.getMetadataModelNameField().getText();
      final String modelDescription = generatorGui.getModelDescriptionField().getText();
      final Object encodingObj = generatorGui.getEncodingComboBox().getSelectedItem();
      final String encoding = StringUtils.toString(encodingObj);
     
      final Object riaObj = generatorGui.getRiaComboBox().getSelectedItem()// RIA技术
      final Object viewObj = generatorGui.getViewComboBox().getSelectedItem()// 表示层技术
      final Object webFrameworkObj = generatorGui.getWebFrameworkComboBox().getSelectedItem(); // web层框架
      final Object appFrameworkObj = generatorGui.getAppFrameworkComboBox().getSelectedItem(); // 业务层框架
      final Object persistenceFrameworkObj = generatorGui.getPersistenceFrameworkComboBox().getSelectedItem(); // 持久层框架
      final String ria = StringUtils.toString(riaObj);
      final String view = StringUtils.toString(viewObj);
      final String webFramework = StringUtils.toString(webFrameworkObj);
      final String appFramework = StringUtils.toString(appFrameworkObj);
      final String persistenceFramework = StringUtils.toString(persistenceFrameworkObj);
     
      final String projectLocation = generatorGui.getProjectLocationField().getText();
      final String src = generatorGui.getSrcField().getText();
      final String appConfig = generatorGui.getAppConfigField().getText();
      final String appResources = generatorGui.getAppResourcesField().getText();
      final String webRoot = generatorGui.getWebRootField().getText();
      final String webConfig = generatorGui.getWebConfigField().getText();
      final String webResources = generatorGui.getWebResourcesField().getText();
     
      final String j2eeSpecificationLevel = generatorGui.getJ2eeSpecificationLevelButtonGroup().getSelection().getActionCommand()//JavaEE规范选择
      final String notation = generatorGui.getNotationButtonGroup().getSelection().getActionCommand()//命名法选择
     
      /*
       * 个性化设置
       */
      final String packagePrefix = generatorGui.getPackagePrefixField().getText();
      final String subsystem = generatorGui.getSubsystemField().getText();
      final String module = generatorGui.getModuleField().getText();
      final String javaModelName = generatorGui.getJavaModelNameField().getText();
      final String actionSuffer = generatorGui.getActionSuffer().getText();
      final String actionFormSuffer = generatorGui.getActionFormSuffer().getText();
      final String serviceSuffer = generatorGui.getServiceSuffer().getText();
      final String serviceImplSuffer = generatorGui.getServiceImplSuffer().getText();
      final String daoSuffer = generatorGui.getDaoSuffer().getText();
      final String daoImplSuffer = generatorGui.getDaoImplSuffer().getText();
      final String metadataSuffer = generatorGui.getMetadataSuffer().getText();
      final String queryPrefix = generatorGui.getQueryPrefix().getText();
      final String createPrefix = generatorGui.getCreatePrefix().getText();
      final String editPrefix = generatorGui.getEditPrefix().getText();
      final String viewPrefix = generatorGui.getViewPrefix().getText();
      final String gridSuffer = generatorGui.getGridSuffer().getText();
      final String treeSuffer = generatorGui.getTreeSuffer().getText();
      final String windowSuffer = generatorGui.getWindowSuffer().getText();
      final String panelSuffer = generatorGui.getPanelSuffer().getText();
      final String gridPanelSuffer = generatorGui.getGridPanelSuffer().getText();
      final String treePanelSuffer = generatorGui.getTreePanelSuffer().getText();

      final boolean isGenerateRiaCode = generatorGui.getRiaCodeGenerateCheckBox().isSelected()//是否生成RIA代码
      final boolean isGenerateViewCode = generatorGui.getViewCodeGenerateCheckBox().isSelected()//是否生成页面代码
      final boolean isGenerateControllerCode = generatorGui.getControllerCodeGenerateCheckBox().isSelected(); // 是否生成控制器代码
      final boolean isGenerateAppCode = generatorGui.getAppCodeGenerateCheckBox().isSelected(); // 是否生成业务层代码
      final boolean isGeneratePersistenceCode = generatorGui.getPersistenceCodeGenerateCheckBox().isSelected(); // 是否生成持久层代码
     
      final String pageStyle = generatorGui.getPageStyle().getText()//页面样式
     
      /*
       * 验证模型基本信息
       */
      if (StringUtils.isBlank(metadataModelName)) {
        throw new IllegalArgumentException("元数据模型名称不能为空!");
      }
      if (StringUtils.isBlank(encoding)) {
        throw new IllegalArgumentException("字符编码不能为空!");
      }

      /*
       * 验证JavaEE规范级别与命名法
       */
      if (StringUtils.isBlank(j2eeSpecificationLevel)) {
        throw new IllegalArgumentException("Java EE规范级别不能为空!");
      }
      if (StringUtils.isBlank(notation)) {
        throw new IllegalArgumentException("命名法不能为空!");
      }
     
      /*
       * 验证技术架构选项
       */
      if (StringUtils.isBlank(view)) {
        throw new IllegalArgumentException("请选择一项视图技术!");
      }
      if (StringUtils.isBlank(webFramework)) {
        throw new IllegalArgumentException("请选择一个web框架!");
      }
      /*
      if (StringUtils.isBlank(appFramework) && StringUtils.isBlank(ria)) {
        throw new IllegalArgumentException("请选择一个应用框架!");
      }
      if (StringUtils.isBlank(persistenceFramework)) {
        throw new IllegalArgumentException("请选择一项持久层技术!");
      }
      if (StringUtils.isBlank(ria)) {
        throw new IllegalArgumentException("请选择一项富客户端技术!");
      }
      */

      /*
       * 验证项目设置选项
       */
      if (StringUtils.isBlank(projectLocation)) {
        throw new IllegalArgumentException("项目路径不能为空!");
      }
      if (StringUtils.isBlank(src)) {
        throw new IllegalArgumentException("src目录不能为空!");
      }if (StringUtils.isBlank(appConfig)) {
        throw new IllegalArgumentException("AppConfig目录不能为空!");
      }
      if (StringUtils.isBlank(appResources)) {
        throw new IllegalArgumentException("AppResources目录不能为空!");
      }
      if (StringUtils.isBlank(webRoot)) {
        throw new IllegalArgumentException("WebRoot目录不能为空!");
      }
      if (StringUtils.isBlank(webConfig)) {
        throw new IllegalArgumentException("WebConfig目录不能为空!");
      }
      if (StringUtils.isBlank(webResources)) {
        throw new IllegalArgumentException("WebResources目录不能为空!");
      }
     
      /*
       * 验证个性化设置
       */
      if (StringUtils.isBlank(packagePrefix)) {
        throw new IllegalArgumentException("应用包不能为空!");
      }
      if (StringUtils.isBlank(subsystem)) {
        throw new IllegalArgumentException("子系统不能为空!");
      }
      if (StringUtils.isBlank(module)) {
        throw new IllegalArgumentException("模块不能为空!");
      }
      if (StringUtils.isBlank(javaModelName)) {
        throw new IllegalArgumentException("Java模型名称不能为空!");
      }
      if (StringUtils.isBlank(actionSuffer)) {
        throw new IllegalArgumentException("Action后缀不能为空!");
      }
      if (StringUtils.isBlank(serviceSuffer)) {
        throw new IllegalArgumentException("Service后缀不能为空!");
      }
      if (StringUtils.isBlank(serviceImplSuffer)) {
        throw new IllegalArgumentException("ServiceImpl后缀不能为空!");
      }
      if (StringUtils.isBlank(daoSuffer)) {
        throw new IllegalArgumentException("Dao后缀不能为空!");
      }
      if (StringUtils.isBlank(daoImplSuffer)) {
        throw new IllegalArgumentException("DaoImpl后缀不能为空!");
      }
     
      /*
       * 验证代码生成选项数据
       */
      if(false == isGenerateRiaCode && false == isGenerateViewCode && false == isGenerateControllerCode && false == isGenerateAppCode && false == isGeneratePersistenceCode) {
        throw new IllegalArgumentException("请选择一层生成代码!");
      }
     
      modelMetadata.setMetadataModelName(metadataModelName);
      modelMetadata.setModelDescription(modelDescription);
      modelMetadata.setEncoding(encoding);

      modelMetadata.setJ2eeSpecificationLevel(j2eeSpecificationLevel);
      modelMetadata.setNotation(notation);
     
      modelMetadata.setRia(ria);
      modelMetadata.setView(view);
      modelMetadata.setWebFramework(webFramework);
      modelMetadata.setAppFramework(appFramework);
      modelMetadata.setPersistenceFramework(persistenceFramework);
     
      modelMetadata.setProjectLocation(projectLocation);
      modelMetadata.setSrc(src);
      modelMetadata.setAppConfig(appConfig);
      modelMetadata.setAppResources(appResources);
      modelMetadata.setWebRoot(webRoot);
      modelMetadata.setWebConfig(webConfig);
      modelMetadata.setWebResources(webResources);

      modelMetadata.setPackagePrefix(packagePrefix);
      modelMetadata.setSubsystem(subsystem);
      modelMetadata.setModule(module);
      modelMetadata.setJavaModelName(javaModelName);
      modelMetadata.setJavaModelNameLowerCase(javaModelName.toLowerCase());
      modelMetadata.setJavaModelNameLowerCamelCase(NotationUtils.smallFirst(javaModelName));
      modelMetadata.setJavaModelNameUpperCamelCase(NotationUtils.capFirst(javaModelName));
      modelMetadata.setJavaModelNameUnderscore(NotationUtils.underscore(metadataModelName));
      modelMetadata.setJavaModelNameStudlyCaps(NotationUtils.studlyCaps(javaModelName));
      modelMetadata.setActionSuffer(actionSuffer);
      modelMetadata.setActionFormSuffer(actionFormSuffer);
      modelMetadata.setServiceSuffer(serviceSuffer);
      modelMetadata.setServiceImplSuffer(serviceImplSuffer);
      modelMetadata.setDaoSuffer(daoSuffer);
      modelMetadata.setDaoImplSuffer(daoImplSuffer);
      modelMetadata.setMetadataSuffer(metadataSuffer);
      modelMetadata.setQueryPrefix(queryPrefix);
      modelMetadata.setQueryCapPrefix(NotationUtils.capFirst(queryPrefix));
      modelMetadata.setCreatePrefix(createPrefix);
      modelMetadata.setCreateCapPrefix(NotationUtils.capFirst(createPrefix));
      modelMetadata.setEditPrefix(editPrefix);
      modelMetadata.setEditCapPrefix(NotationUtils.capFirst(editPrefix));
      modelMetadata.setViewPrefix(viewPrefix);
      modelMetadata.setViewCapPrefix(NotationUtils.capFirst(viewPrefix));
      modelMetadata.setGridSuffer(gridSuffer);
      modelMetadata.setTreeSuffer(treeSuffer);
      modelMetadata.setWindowSuffer(windowSuffer);
      modelMetadata.setPanelSuffer(panelSuffer);
      modelMetadata.setGridPanelSuffer(gridPanelSuffer);
      modelMetadata.setTreePanelSuffer(treePanelSuffer);
     
      modelMetadata.setGenerateRiaCode(isGenerateRiaCode);
      modelMetadata.setGenerateViewCode(isGenerateViewCode);
      modelMetadata.setGenerateControllerCode(isGenerateControllerCode);
      modelMetadata.setGenerateAppCode(isGenerateAppCode);
      modelMetadata.setGeneratePersistenceCode(isGeneratePersistenceCode);
     
      modelMetadata.setPageStyle(pageStyle);
     
      /*
       * 确认生成代码
       */
      if (JOptionPane.OK_OPTION == JOptionPane.showConfirmDialog(ui, "确认生成代码?", "确认", JOptionPane.OK_CANCEL_OPTION)) {
        // 3、调用生成器
        Generator generator = GeneratorFactory.getGenerator(modelMetadata);
        String codes = generator.generateCode(modelMetadata);
//        System.out.println(codes);
        if(StringUtils.isNotBlank(codes)) {
          if(codes.startsWith("&@")) {
            codes = codes.substring(2);
          }
          codes = codes.replaceAll("&@", "\n");
        }
//        System.out.println(codes);
//        JOptionPane.showMessageDialog(ui, "代码生成成功!" + codes);
       
        JTextArea textArea = new JTextArea(codes);
        //通过设置textArea的列和行来设置对话框显示内容的大小
        textArea.setColumns(100);
        textArea.setRows(10);
//        textArea.setLineWrap(true);//超过设置的列数自动换行
        textArea.setLineWrap(false);
        textArea.setEditable(false);//设置不可编辑
        JOptionPane.showMessageDialog(ui, new JScrollPane(textArea), "代码生成成功", JOptionPane.INFORMATION_MESSAGE);//加入滚动条
        textArea.getParent().getParent().getParent().setLocation(0, 0);
       
        generatorGui.getStatusLabel().setText("代码生成成功!");
      }
    } catch (Exception ex) {
      ex.printStackTrace();
      generatorGui.getStatusLabel().setText("代码生成失败!");
      JOptionPane.showMessageDialog(ui, ex.getMessage());
    }
  }

  public Component getUI() {
    return ui;
  }

  public void setUI(Component ui) {
    this.ui = ui;
  }

}
TOP

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

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.