/** * Դ�������ƣ�DBTableImportWizard.java * �������Ȩ���������ӹɷ����޹�˾ ��Ȩ���� * ϵͳ���ƣ�JRES Studio * ģ�����ƣ�com.hundsun.ares.studio.jres.database.ui * ����˵����$desc * ����ĵ��� * ���ߣ� */ package com.hundsun.ares.studio.jres.database.ui.wizard; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.wizard.Wizard; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IImportWizard; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.plugin.AbstractUIPlugin; import com.hundsun.ares.studio.core.ARESCore; import com.hundsun.ares.studio.core.IARESProject; import com.hundsun.ares.studio.core.excel.ExcelHandlerException; import com.hundsun.ares.studio.jres.database.ui.DatabaseUI; import com.hundsun.ares.studio.jres.database.ui.pages.ImportExcelDBTableWizardPage; import com.hundsun.ares.studio.jres.database.utils.DatabaseUtils; /** * @author yanwj06282 * */ public class DBTableImportWizard extends Wizard implements IImportWizard { private Logger logger = Logger.getLogger(DBTableImportWizard.class); private IStructuredSelection selection; private ImportExcelDBTableWizardPage page; @Override public void init(IWorkbench workbench, IStructuredSelection selection) { this.selection = selection; setWindowTitle("�������ݿ�"); } /* (non-Javadoc) * @see org.eclipse.jface.wizard.Wizard#createPageControls(org.eclipse.swt.widgets.Composite) */ @Override public void createPageControls(Composite pageContainer) { super.createPageControls(pageContainer); getShell().setImage(AbstractUIPlugin.imageDescriptorFromPlugin(DatabaseUI.PLUGIN_ID, "icons/table.gif").createImage()); } @Override public void addPages() { addPage(page = new ImportExcelDBTableWizardPage("", selection)); } @Override public boolean performFinish() { Job job = new Job("���ݿ⵼��"){ @Override protected IStatus run(IProgressMonitor monitor) { File file = page.getExcelFile(); FileInputStream is = null; if (file.exists()) { try { Map<String, List<Map<String, Object>>> exMaps = DatabaseUtils.readTableExcel(is = new FileInputStream(file), 1, 1); IARESProject project = ARESCore.create(page.getSelectedProject()); final List<String> result = DatabaseUtils.importDatabaseTableData(exMaps, project ,page.isClearModule(), monitor); if (result.size() > 0) { final StringBuffer sb = new StringBuffer(); for (String re : result) { if (StringUtils.isNotBlank(sb.toString())) { sb.append(","); } sb.append(re); } Display.getDefault().syncExec(new Runnable() { @Override public void run() { MessageDialog.openWarning(getShell(), "���ݿ����", "����Ŀ¼ҳ��Ϣȱʧ������Sheetҳ��Ϣδ����: ["+sb+"]"); } }); logger.warn("[���ݿ����]: ����Ŀ¼ҳ��Ϣȱʧ������Sheetҳ��Ϣδ����: ["+sb+"]"); } } catch (final Exception e1) { Display.getDefault().syncExec(new Runnable() { @Override public void run() { if(e1 instanceof ExcelHandlerException){ MessageDialog.openError(getShell(), "���ݿ����", e1.getMessage()); }else{ String message = "ѡ������ݿ��Excel��ʽ����ȷ,��ѡ����ȷ�����ݿ��Excel"; MessageDialog.openError(getShell(), "���ݿ����", message); } } }); e1.printStackTrace(); }finally { if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } return Status.OK_STATUS; } }; job.setUser(true); job.schedule(); return true; } }