|
|
|
@ -5,14 +5,17 @@ import com.fr.base.TableData;
|
|
|
|
|
import com.fr.base.svg.IconUtils; |
|
|
|
|
import com.fr.data.MultiResultTableData; |
|
|
|
|
import com.fr.data.TableDataSource; |
|
|
|
|
import com.fr.data.impl.DBTableData; |
|
|
|
|
import com.fr.design.DesignModelAdapter; |
|
|
|
|
import com.fr.design.actions.UpdateAction; |
|
|
|
|
import com.fr.design.data.datapane.TableDataCreatorProducer; |
|
|
|
|
import com.fr.design.data.datapane.TableDataNameObjectCreator; |
|
|
|
|
import com.fr.design.data.datapane.TableDataSourceOP; |
|
|
|
|
import com.fr.design.data.datapane.TableDataTree; |
|
|
|
|
import com.fr.design.data.datapane.auth.TableDataAuthHelper; |
|
|
|
|
import com.fr.design.data.tabledata.ResponseDataSourceChange; |
|
|
|
|
import com.fr.design.data.tabledata.tabledatapane.AbstractTableDataPane; |
|
|
|
|
import com.fr.design.data.tabledata.tabledatapane.loading.TableDataLoadingPane; |
|
|
|
|
import com.fr.design.data.tabledata.wrapper.MultiResultTableDataWrapper; |
|
|
|
|
import com.fr.design.data.tabledata.wrapper.TableDataWrapper; |
|
|
|
|
import com.fr.design.data.tabledata.wrapper.TemplateTableDataWrapper; |
|
|
|
@ -42,6 +45,8 @@ import javax.swing.DefaultCellEditor;
|
|
|
|
|
import javax.swing.Icon; |
|
|
|
|
import javax.swing.JComponent; |
|
|
|
|
import javax.swing.JTree; |
|
|
|
|
import javax.swing.SwingUtilities; |
|
|
|
|
import javax.swing.SwingWorker; |
|
|
|
|
import javax.swing.event.CellEditorListener; |
|
|
|
|
import javax.swing.event.ChangeEvent; |
|
|
|
|
import javax.swing.tree.TreeCellEditor; |
|
|
|
@ -51,6 +56,7 @@ import java.awt.event.FocusAdapter;
|
|
|
|
|
import java.awt.event.FocusEvent; |
|
|
|
|
import java.awt.event.KeyAdapter; |
|
|
|
|
import java.awt.event.KeyEvent; |
|
|
|
|
import java.util.Collection; |
|
|
|
|
import java.util.EventObject; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.HashSet; |
|
|
|
@ -449,7 +455,45 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp
|
|
|
|
|
storeProcedureDataWrapper.previewData(MultiResultTableDataWrapper.PREVIEW_ALL); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
((TableDataWrapper) data).previewData(); |
|
|
|
|
TableDataWrapper wrapper = ((TableDataWrapper) data); |
|
|
|
|
if (TableDataAuthHelper.needCheckAuthWhenEdit(wrapper.getTableData())) { |
|
|
|
|
// 先打开一个Loading面板
|
|
|
|
|
TableDataLoadingPane loadingPane = new TableDataLoadingPane(); |
|
|
|
|
BasicDialog loadingDialog = loadingPane.showLargeWindow(SwingUtilities.getWindowAncestor(BasicTableDataTreePane.this), null); |
|
|
|
|
// 查询权限
|
|
|
|
|
new SwingWorker<Boolean, Void>() { |
|
|
|
|
@Override |
|
|
|
|
protected Boolean doInBackground() throws Exception { |
|
|
|
|
// 获取无权限连接名称集合
|
|
|
|
|
Collection<String> noAuthConnections = TableDataAuthHelper.getNoAuthConnections(); |
|
|
|
|
// 获取当前数据集对应的数据连接名称
|
|
|
|
|
String connectionName = TableDataAuthHelper.getConnectionNameByDBTableData((DBTableData) wrapper.getTableData()); |
|
|
|
|
return !noAuthConnections.contains(connectionName); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected void done() { |
|
|
|
|
try { |
|
|
|
|
Boolean hasAuth = get(); |
|
|
|
|
if (hasAuth) { |
|
|
|
|
// 有权限时,关闭Loading面板,打开编辑面板
|
|
|
|
|
loadingDialog.setVisible(false); |
|
|
|
|
wrapper.previewData(); |
|
|
|
|
} else { |
|
|
|
|
// 无权限时,给出无权限提示
|
|
|
|
|
loadingPane.switchTo(TableDataLoadingPane.NO_AUTH_PANE_NAME); |
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
FineLoggerFactory.getLogger().error("loading connection error in remote design", e.getMessage()); |
|
|
|
|
// 查询权限失败时,给出报错提示
|
|
|
|
|
loadingPane.switchTo(TableDataLoadingPane.ERROR_NAME); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}.execute(); |
|
|
|
|
loadingDialog.setVisible(true); |
|
|
|
|
} else { |
|
|
|
|
wrapper.previewData(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} catch (Exception ex) { |
|
|
|
|