forked from fanruan/design
Browse Source
* commit '3c3fc82d5eb3594de283df0a2ca7107456264df7': (78 commits) 改成枚举 unused import KERNEL-594 更新好插件管理器后自动刷新 去重 去掉针对性接口,转通用appender实现 KERNEL-594 更新版本需要重新打开 KERNEL-594 版本信息,需要reload KERNEL-594 mime问题 KERNEL-594 mime问题 和决策平台里面有点重复,要改 KERNEL-594 版本信息 REPORT-15183 10.0远程日志输出接口(日志分类插件需求) 新方法 完善一下API KERNEL-594 新插件管理版本检查 KERNEL-493 上传测试文件 KERNEL-493 设计器数据交换部分的API示例 去除调试信息 处理下NPE KERNEL-493 统一设计器和平台的数据连接 ...research/10.0
neil
6 years ago
65 changed files with 1405 additions and 467 deletions
@ -0,0 +1,41 @@
|
||||
package com.fr.design.actions.community; |
||||
|
||||
import com.fr.design.menu.MenuKeySet; |
||||
import com.fr.design.utils.BrowseUtils; |
||||
import com.fr.general.CloudCenter; |
||||
import com.fr.general.IOUtils; |
||||
|
||||
import javax.swing.KeyStroke; |
||||
import java.awt.event.ActionEvent; |
||||
|
||||
public class FacebookFansAction extends UpAction { |
||||
|
||||
public FacebookFansAction() { |
||||
this.setMenuKeySet(FACEBOOKFANS); |
||||
this.setName(getMenuKeySet().getMenuName()); |
||||
this.setMnemonic(getMenuKeySet().getMnemonic()); |
||||
this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/bbs/facebook.png")); |
||||
} |
||||
|
||||
@Override |
||||
public void actionPerformed(ActionEvent arg0) { |
||||
BrowseUtils.browser(CloudCenter.getInstance().acquireUrlByKind("facebook.fans.tw")); |
||||
} |
||||
|
||||
public static final MenuKeySet FACEBOOKFANS = new MenuKeySet() { |
||||
@Override |
||||
public char getMnemonic() { |
||||
return 'F'; |
||||
} |
||||
|
||||
@Override |
||||
public String getMenuName() { |
||||
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Community_FaceBook_Fans"); |
||||
} |
||||
|
||||
@Override |
||||
public KeyStroke getKeyStroke() { |
||||
return null; |
||||
} |
||||
}; |
||||
} |
@ -0,0 +1,39 @@
|
||||
package com.fr.design.dcm; |
||||
|
||||
import com.fr.web.struct.AssembleComponent; |
||||
import com.fr.web.struct.Atom; |
||||
import com.fr.web.struct.browser.RequestClient; |
||||
import com.fr.web.struct.category.ScriptPath; |
||||
import com.fr.web.struct.category.StylePath; |
||||
import com.fr.web.struct.impl.FineUI; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-05-16 |
||||
*/ |
||||
public class UniversalDatabaseComponent extends AssembleComponent { |
||||
|
||||
public static final UniversalDatabaseComponent KEY = new UniversalDatabaseComponent(); |
||||
|
||||
private UniversalDatabaseComponent() { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public ScriptPath script(RequestClient req) { |
||||
return ScriptPath.build("/com/fr/design/dcm/index.js"); |
||||
} |
||||
|
||||
@Override |
||||
public StylePath style(RequestClient req) { |
||||
return StylePath.build("/com/fr/design/dcm/style.css"); |
||||
} |
||||
|
||||
@Override |
||||
public Atom[] refer() { |
||||
return new Atom[]{ |
||||
FineUI.KEY |
||||
}; |
||||
} |
||||
} |
@ -0,0 +1,32 @@
|
||||
package com.fr.design.dcm; |
||||
|
||||
import com.fr.design.dialog.BasicPane; |
||||
import com.fr.design.dialog.UIDialog; |
||||
import com.fr.design.utils.gui.GUICoreUtils; |
||||
|
||||
import javax.swing.*; |
||||
import java.awt.*; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-05-16 |
||||
*/ |
||||
public class UniversalDatabaseDialog extends UIDialog { |
||||
|
||||
public UniversalDatabaseDialog(Frame frame, BasicPane pane) { |
||||
super(frame); |
||||
setUndecorated(true); |
||||
JPanel panel = (JPanel) getContentPane(); |
||||
panel.setLayout(new BorderLayout()); |
||||
add(pane, BorderLayout.CENTER); |
||||
setSize(new Dimension(1000, 600)); |
||||
GUICoreUtils.centerWindow(this); |
||||
setResizable(false); |
||||
} |
||||
|
||||
@Override |
||||
public void checkValid() throws Exception { |
||||
|
||||
} |
||||
} |
@ -0,0 +1,36 @@
|
||||
package com.fr.design.dcm; |
||||
|
||||
import com.fr.design.dialog.UIDialog; |
||||
import com.fr.design.mainframe.DesignerContext; |
||||
|
||||
import javax.swing.*; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-05-16 |
||||
*/ |
||||
public class UniversalDatabaseOpener { |
||||
|
||||
private static UIDialog dialog = null; |
||||
|
||||
public static UIDialog getDialog() { |
||||
return dialog; |
||||
} |
||||
|
||||
public static void showUniverseDatabaseDialog() { |
||||
UniversalDatabasePane upmPane = new UniversalDatabasePane(); |
||||
if (dialog == null) { |
||||
dialog = new UniversalDatabaseDialog(DesignerContext.getDesignerFrame(), upmPane); |
||||
} |
||||
dialog.setVisible(true); |
||||
} |
||||
|
||||
public static void closeWindow() { |
||||
if (dialog != null) { |
||||
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); |
||||
dialog.setVisible(false); |
||||
dialog = null; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,39 @@
|
||||
package com.fr.design.dcm; |
||||
|
||||
import com.fr.design.dialog.BasicPane; |
||||
import com.fr.design.ui.ModernUIPane; |
||||
import com.teamdev.jxbrowser.chromium.JSValue; |
||||
import com.teamdev.jxbrowser.chromium.events.ScriptContextAdapter; |
||||
import com.teamdev.jxbrowser.chromium.events.ScriptContextEvent; |
||||
|
||||
import java.awt.*; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-05-16 |
||||
*/ |
||||
public class UniversalDatabasePane extends BasicPane { |
||||
|
||||
private ModernUIPane<Object> modernUIPane; |
||||
|
||||
@Override |
||||
protected String title4PopupWindow() { |
||||
return "Database"; |
||||
} |
||||
|
||||
public UniversalDatabasePane() { |
||||
setLayout(new BorderLayout()); |
||||
modernUIPane = new ModernUIPane.Builder<>() |
||||
.withComponent(UniversalDatabaseComponent.KEY) |
||||
.prepare(new ScriptContextAdapter() { |
||||
@Override |
||||
public void onScriptContextCreated(ScriptContextEvent event) { |
||||
JSValue window = event.getBrowser().executeJavaScriptAndReturnValue("window"); |
||||
window.asObject().setProperty("DcmHelper", UniversalDcmBridge.getBridge(event.getBrowser())); |
||||
} |
||||
}) |
||||
.build(); |
||||
add(modernUIPane, BorderLayout.CENTER); |
||||
} |
||||
} |
@ -0,0 +1,34 @@
|
||||
package com.fr.design.dcm; |
||||
|
||||
import com.fr.decision.webservice.bean.BaseBean; |
||||
import com.fr.design.bridge.exec.JSBridge; |
||||
import com.teamdev.jxbrowser.chromium.Browser; |
||||
import com.teamdev.jxbrowser.chromium.JSObject; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-05-17 |
||||
* 桥接Java和JavaScript的类 |
||||
*/ |
||||
public class UniversalDcmBridge { |
||||
|
||||
public static UniversalDcmBridge getBridge(Browser browser) { |
||||
return new UniversalDcmBridge(browser); |
||||
} |
||||
|
||||
private JSObject window; |
||||
|
||||
private UniversalDcmBridge(Browser browser) { |
||||
this.window = browser.executeJavaScriptAndReturnValue("window").asObject(); |
||||
} |
||||
|
||||
/** |
||||
* 获取所有的数据连接 |
||||
* @return 数据连接集合 |
||||
*/ |
||||
@JSBridge |
||||
public BaseBean getConnections() { |
||||
return null; |
||||
} |
||||
} |
@ -0,0 +1,82 @@
|
||||
package com.fr.design.mainframe.loghandler; |
||||
|
||||
import com.fr.log.FineLoggerFactory; |
||||
import com.fr.third.apache.log4j.Level; |
||||
import com.fr.third.apache.log4j.spi.LoggingEvent; |
||||
import com.fr.third.apache.log4j.spi.ThrowableInformation; |
||||
|
||||
/** |
||||
* 设计器日志记录 |
||||
*/ |
||||
public class DesignerLogger { |
||||
public static final int INFO_INT = Level.INFO.toInt(); |
||||
|
||||
public static final int ERROR_INT = Level.ERROR.toInt(); |
||||
|
||||
public static final int WARN_INT = Level.WARN.toInt(); |
||||
|
||||
/** |
||||
* 记录LoggingEvent对象 |
||||
* |
||||
* @param event |
||||
*/ |
||||
public static void log(LoggingEvent event) { |
||||
if (event == null) { |
||||
return; |
||||
} |
||||
LogParser.parse(event).log(event); |
||||
} |
||||
|
||||
public enum LogParser { |
||||
DEFAULT(-1) { |
||||
@Override |
||||
public void log(LoggingEvent event) { |
||||
|
||||
} |
||||
}, |
||||
INFO(Level.INFO.toInt()) { |
||||
@Override |
||||
public void log(LoggingEvent event) { |
||||
FineLoggerFactory.getLogger().info(event.getRenderedMessage()); |
||||
} |
||||
}, |
||||
WARN(Level.WARN.toInt()) { |
||||
@Override |
||||
public void log(LoggingEvent event) { |
||||
ThrowableInformation information = event.getThrowableInformation(); |
||||
FineLoggerFactory.getLogger().warn(event.getRenderedMessage(), information == null ? null : information.getThrowable()); |
||||
} |
||||
}, |
||||
|
||||
ERROR(Level.ERROR.toInt()) { |
||||
@Override |
||||
public void log(LoggingEvent event) { |
||||
ThrowableInformation information = event.getThrowableInformation(); |
||||
FineLoggerFactory.getLogger().error(event.getRenderedMessage(), information == null ? null : information.getThrowable()); |
||||
} |
||||
}; |
||||
private int level; |
||||
|
||||
LogParser(int level) { |
||||
this.level = level; |
||||
} |
||||
|
||||
public int getLevel() { |
||||
return level; |
||||
} |
||||
|
||||
public static LogParser parse(LoggingEvent event) { |
||||
int intLevel = event.getLevel().toInt(); |
||||
for (LogParser logParser : values()) { |
||||
if (logParser.getLevel() == intLevel) { |
||||
return logParser; |
||||
} |
||||
} |
||||
return DEFAULT; |
||||
|
||||
} |
||||
|
||||
public void log(LoggingEvent event) { |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,37 @@
|
||||
package com.fr.design.mainframe.vcs.ui; |
||||
|
||||
import com.fr.design.editor.editor.DateEditor; |
||||
import com.fr.log.FineLoggerFactory; |
||||
|
||||
import java.text.ParseException; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* Created by XiaXiang on 2019/5/14. |
||||
*/ |
||||
public class VcsDateEditor extends DateEditor { |
||||
private Date tempValue; |
||||
|
||||
public VcsDateEditor(Date value, boolean format, String name, int dateFormat) { |
||||
super(value, format, name, dateFormat); |
||||
this.tempValue = value; |
||||
} |
||||
|
||||
@Override |
||||
public Date getValue() { |
||||
if (tempValue == null) { |
||||
return null; |
||||
} |
||||
return super.getValue(); |
||||
} |
||||
|
||||
@Override |
||||
public void setValue(Date value) { |
||||
this.tempValue = value; |
||||
try { |
||||
getUiDatePicker().setSelectedDate(value); |
||||
} catch (ParseException parseException) { |
||||
FineLoggerFactory.getLogger().error(parseException.getMessage(), parseException); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,32 @@
|
||||
package com.fr.design.mainframe.vcs.ui; |
||||
|
||||
|
||||
import com.fr.design.gui.ilable.ActionLabel; |
||||
import com.fr.design.gui.ilable.UILabel; |
||||
|
||||
import java.awt.Color; |
||||
import java.awt.Graphics; |
||||
|
||||
/** |
||||
* Created by XiaXiang on 2019/5/15. |
||||
*/ |
||||
public class VcsLabel extends ActionLabel { |
||||
|
||||
|
||||
public VcsLabel(String text, Color color) { |
||||
super(text); |
||||
this.setForeground(color); |
||||
} |
||||
|
||||
public void paintComponent(Graphics g) { |
||||
if (ui != null) { |
||||
Graphics scratchGraphics = (g == null) ? null : g.create(); |
||||
try { |
||||
ui.update(scratchGraphics, this); |
||||
} |
||||
finally { |
||||
scratchGraphics.dispose(); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,27 +0,0 @@
|
||||
package com.fr.design.upm.loader; |
||||
|
||||
import com.fr.decision.webservice.bean.plugin.store.ProjectInfoBean; |
||||
import com.fr.decision.webservice.v10.plugin.helper.category.impl.BaseResourceLoader; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2019-04-18 |
||||
*/ |
||||
public class UpmDesignResourceLoader extends BaseResourceLoader { |
||||
|
||||
@Override |
||||
public String getPluginPath() { |
||||
return "upm/plugin_design.html"; |
||||
} |
||||
|
||||
@Override |
||||
public void checkResourceExist(ProjectInfoBean projectInfoBean) throws Exception { |
||||
|
||||
} |
||||
|
||||
@Override |
||||
public String getDownloadPath() throws Exception { |
||||
return "http://fanruan-market.oss-cn-shanghai.aliyuncs.com/upm/1.0/upm-10.0.zip"; |
||||
} |
||||
} |
@ -1,62 +1,104 @@
|
||||
package com.fr.env; |
||||
|
||||
import com.fr.design.i18n.Toolkit; |
||||
import com.fr.log.FineLoggerFactory; |
||||
import com.fr.stable.AssistUtils; |
||||
import com.fr.workspace.WorkContext; |
||||
import com.fr.workspace.connect.WorkspaceConnectionInfo; |
||||
import com.fr.workspace.engine.channel.http.FunctionalHttpRequest; |
||||
|
||||
import javax.swing.Icon; |
||||
import javax.swing.UIManager; |
||||
|
||||
/** |
||||
* 测试连接的结果。 |
||||
* 不改变原有逻辑的情况下,加入一层转化。 |
||||
* 根据这里的转化结果,判断需要提示哪些内容。 |
||||
* |
||||
* <p> |
||||
* created by Harrison on 2018/12/20 |
||||
**/ |
||||
public enum TestConnectionResult { |
||||
/** |
||||
* 完全成功, 版本匹配,测试连接成功。 |
||||
*/ |
||||
Fully_Success, |
||||
FULLY_SUCCESS { |
||||
@Override |
||||
public Icon getIcon() { |
||||
return UIManager.getIcon("OptionPane.informationIcon"); |
||||
} |
||||
|
||||
@Override |
||||
public String getText() { |
||||
return Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Successful"); |
||||
} |
||||
}, |
||||
|
||||
/** |
||||
* 不完全成功,版本不匹配,但测试连接成功。 |
||||
*/ |
||||
Partly_Sucess, |
||||
PARTLY_SUCCESS { |
||||
@Override |
||||
public Icon getIcon() { |
||||
return UIManager.getIcon("OptionPane.warningIcon"); |
||||
} |
||||
|
||||
@Override |
||||
public String getText() { |
||||
return Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Version_Inconsistence_Test"); |
||||
} |
||||
}, |
||||
|
||||
/** |
||||
* 完全失败,直接没连上 |
||||
*/ |
||||
Fully_Failed, |
||||
FULLY_FAILED { |
||||
@Override |
||||
public Icon getIcon() { |
||||
return UIManager.getIcon("OptionPane.errorIcon"); |
||||
} |
||||
|
||||
@Override |
||||
public String getText() { |
||||
return Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Failed"); |
||||
} |
||||
}, |
||||
|
||||
/** |
||||
* 验证 Token 失败 |
||||
*/ |
||||
Auth_Failed; |
||||
AUTH_FAILED { |
||||
@Override |
||||
public Icon getIcon() { |
||||
return UIManager.getIcon("OptionPane.errorIcon"); |
||||
} |
||||
|
||||
@Override |
||||
public String getText() { |
||||
return Toolkit.i18nText("Fine-Design_Basic_Remote_Connect_Auth_Failed"); |
||||
} |
||||
}; |
||||
|
||||
public abstract Icon getIcon(); |
||||
|
||||
public abstract String getText(); |
||||
|
||||
public static TestConnectionResult parse(Boolean value, WorkspaceConnectionInfo info) { |
||||
if (value == null) { |
||||
return Auth_Failed; |
||||
return AUTH_FAILED; |
||||
} |
||||
|
||||
if (!value) { |
||||
return Fully_Failed; |
||||
return FULLY_FAILED; |
||||
} |
||||
try { |
||||
|
||||
String serverVersion = new FunctionalHttpRequest(info).getServerVersion(); |
||||
if (AssistUtils.equals(serverVersion, WorkContext.getVersion())) { |
||||
return Fully_Success; |
||||
return FULLY_SUCCESS; |
||||
} |
||||
|
||||
return Partly_Sucess; |
||||
return PARTLY_SUCCESS; |
||||
} catch (Exception e) { |
||||
|
||||
// 发生异常,说明没连接上。返回完全失败。
|
||||
FineLoggerFactory.getLogger().error(e.getMessage()); |
||||
return Fully_Failed; |
||||
return FULLY_FAILED; |
||||
} |
||||
|
||||
|
||||
} |
||||
} |
||||
|
File diff suppressed because one or more lines are too long
@ -0,0 +1,276 @@
|
||||
.bi-plugin-redis { |
||||
padding: 20px; } |
||||
|
||||
.database-connection-layout { |
||||
width: 100%; |
||||
height: 100%; |
||||
background-color: #f7f8fa; } |
||||
.database-connection-layout .title { |
||||
background-color: #fff; |
||||
border-bottom: 1px solid #e8eaed; } |
||||
.database-connection-layout .title .title-item { |
||||
height: 39px; |
||||
line-height: 39px; |
||||
padding-left: 15px; |
||||
padding-right: 15px; |
||||
text-align: center; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
overflow: hidden; |
||||
position: relative; |
||||
flex-shrink: 0; |
||||
font-weight: 700; |
||||
cursor: pointer; } |
||||
.database-connection-layout .title .close-button { |
||||
position: absolute !important; |
||||
right: 5px; |
||||
top: 5px; |
||||
width: 30px; |
||||
height: 30px; |
||||
cursor: pointer; |
||||
background-image: url(./img/icon_close9x9_normal.png); |
||||
background-repeat: no-repeat; |
||||
background-position: center; } |
||||
.database-connection-layout .linkset { |
||||
margin: 10px; |
||||
bottom: 0px; |
||||
background-color: #ffffff; } |
||||
.database-connection-layout .linkStatus { |
||||
margin: 10px; |
||||
top: 40px; |
||||
background-color: #ffffff; } |
||||
|
||||
.database-left { |
||||
border-right: 1px solid #e8eaed; } |
||||
.database-left .select-group { |
||||
border-bottom: 1px solid #e8eaed; } |
||||
.database-left .select-group .select { |
||||
margin: 10px; } |
||||
.database-left .select-group .select .database-link-items { |
||||
padding-left: 10px; } |
||||
.database-left .select-group .select .database-link-items .link-item { |
||||
border-top: 1px solid #e8eaed; } |
||||
.database-left .select-group .status-title { |
||||
font-weight: 700; |
||||
margin-left: 12px; |
||||
margin-top: 12px; } |
||||
.database-left .left-list { |
||||
margin: 10px; } |
||||
.database-left .left-list .left-item { |
||||
height: 24px; |
||||
line-height: 24px; |
||||
cursor: pointer; } |
||||
.database-left .left-list .left-item:hover { |
||||
background-color: rgba(54, 133, 242, 0.05); } |
||||
.database-left .left-list .left-item:hover .icons .action-icon { |
||||
visibility: visible !important; } |
||||
.database-left .left-list .left-item .icons { |
||||
float: right !important; } |
||||
.database-left .left-list .left-item .icons .action-icon { |
||||
visibility: hidden; } |
||||
.database-left .left-list .left-item .icons .b-font { |
||||
font-size: 16px; } |
||||
.database-left .left-list .left-item-selected { |
||||
background-color: rgba(54, 133, 242, 0.05); } |
||||
.database-left .left-list .left-item-selected .link-title { |
||||
color: #3685f2; } |
||||
|
||||
.database-right { |
||||
min-width: 400px; |
||||
overflow: auto; } |
||||
.database-right .bi-flex-center-adapt-layout { |
||||
height: 100%; } |
||||
.database-right .bi-flex-center-adapt-layout .data-connection-background { |
||||
background: url(./img/resources.png) center center no-repeat; |
||||
background-size: contain; } |
||||
.database-right .right-status-title { |
||||
border-bottom: 1px solid #e8eaed; |
||||
color: #3d4d66; |
||||
line-height: 40px; |
||||
padding-left: 10px; |
||||
font-weight: 700; } |
||||
.database-right .right-status-body { |
||||
margin: 10px 30px 0px 30px; |
||||
height: 50%; } |
||||
.database-right .right-status-body .right-status-item { |
||||
height: 150px; |
||||
width: 50%; |
||||
top: 0; |
||||
left: 0; |
||||
position: absolute !important; } |
||||
.database-right .right-status-body .right-status-item .right-status-board { |
||||
margin-left: 25px; |
||||
position: relative !important; |
||||
left: -25px; } |
||||
.database-right .right-status-body .right-status-right { |
||||
height: 150px; |
||||
width: 50%; |
||||
top: 0; |
||||
right: 0; |
||||
position: absolute !important; } |
||||
.database-right .right-status-body .right-status-right .right-status-board { |
||||
margin-right: 25px; |
||||
position: relative !important; |
||||
left: 25px; } |
||||
.database-right .right-status-body .right-status-board { |
||||
background-color: #f7f8fa; |
||||
color: #3d4d66; |
||||
width: 100%; |
||||
height: 100%; } |
||||
.database-right .right-status-body .right-status-board .right-status-board-item { |
||||
text-align: center; |
||||
margin-top: 38px; } |
||||
.database-right .right-status-body .right-status-board .right-status-board-item .right-status-text { |
||||
display: inline-block; } |
||||
.database-right .right-status-body .right-status-board .right-status-board-item .card-font1 { |
||||
color: #13CD66; |
||||
font-size: 32px; } |
||||
.database-right .right-status-body .right-status-board .right-status-board-item .card-font2 { |
||||
color: #3685F2; |
||||
font-size: 32px; } |
||||
.database-right .right-content { |
||||
height: 100%; } |
||||
.database-right .right-content .right-title { |
||||
border-bottom: 1px solid #e8eaed; |
||||
color: #3d4d66; |
||||
line-height: 40px; |
||||
padding-left: 10px; } |
||||
.database-right .right-content .right-title .right-title-text { |
||||
font-weight: 700; } |
||||
.database-right .right-content .right-title .right-title-button { |
||||
float: right !important; |
||||
margin-right: 10px; |
||||
margin-top: 8px; } |
||||
.database-right .right-content .right-show { |
||||
margin: 10px; } |
||||
.database-right .right-content .right-show .right-form { |
||||
width: 100%; } |
||||
|
||||
.both-side { |
||||
line-height: 24px; |
||||
margin-bottom: 10px; } |
||||
.both-side .left { |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
position: relative; |
||||
flex-shrink: 0; |
||||
font-weight: 700; } |
||||
.both-side .hint { |
||||
padding-left: 5px; |
||||
white-space: nowrap; |
||||
text-overflow: ellipsis; |
||||
overflow: hidden; |
||||
position: relative; |
||||
flex-shrink: 0; |
||||
margin-left: 5px; |
||||
color: #9ea6b2; } |
||||
|
||||
.shared-component-title { |
||||
height: 24px; |
||||
line-height: 24px; |
||||
margin-bottom: 10px; |
||||
color: #9ea6b2; |
||||
border-bottom: 1px solid #e8eaed; } |
||||
|
||||
.comfirm-content { |
||||
margin-top: 40px; |
||||
margin-left: 20px; } |
||||
.comfirm-content .comfirm-icon { |
||||
background-image: url(./img/warning.png); |
||||
background-size: contain; |
||||
margin-right: 12px; } |
||||
.comfirm-content .bi-text { |
||||
height: 50px; |
||||
line-height: 50px; |
||||
margin-left: 12px; } |
||||
|
||||
.more-link .more-link-item { |
||||
width: 538px; |
||||
overflow: hidden auto; |
||||
left: -10px !important; |
||||
right: 0px; |
||||
top: 10px; |
||||
bottom: 0px; |
||||
position: absolute; |
||||
height: 380px; } |
||||
.more-link .more-link-item .link-item { |
||||
margin-left: 10px; |
||||
margin-bottom: 10px; |
||||
cursor: pointer; |
||||
border: solid 1px #fff; } |
||||
.more-link .more-link-item .link-item:hover { |
||||
border: solid 1px #3480f2; } |
||||
.more-link .more-link-item .link-item .selected { |
||||
position: absolute !important; |
||||
right: -1px; |
||||
top: -1px; |
||||
height: 30px; |
||||
width: 30px; |
||||
background: url(./img/database-selected.png) center center no-repeat; |
||||
background-size: contain; } |
||||
.more-link .more-link-item .link-item .text { |
||||
height: 27px; |
||||
line-height: 27px; |
||||
padding-left: 2px; |
||||
padding-right: 2px; |
||||
text-align: center; |
||||
white-space: nowrap; |
||||
background: #F0F3F7; } |
||||
|
||||
.popover-notitle .bi-header-background { |
||||
display: none; } |
||||
|
||||
.popover-notitle .bi-absolute-layout { |
||||
top: 0px !important; } |
||||
|
||||
.bi-custom-show .show-content { |
||||
text-align: center; } |
||||
.bi-custom-show .show-content .loading-icon { |
||||
display: block; |
||||
background: url(./img/loading.gif) center center no-repeat; |
||||
background-size: contain; |
||||
margin: 0 auto; |
||||
margin-bottom: 18px; } |
||||
.bi-custom-show .show-content .success-icon { |
||||
display: block; |
||||
background: url(./img/success.png) center center no-repeat; |
||||
background-size: contain; |
||||
margin: 0 auto; |
||||
margin-bottom: 18px; } |
||||
.bi-custom-show .show-content .error-icon { |
||||
display: block; |
||||
background: url(./img/error.png) center center no-repeat; |
||||
background-size: contain; |
||||
margin: 0 auto; |
||||
margin-bottom: 18px; } |
||||
.bi-custom-show .show-content .buttons { |
||||
margin-top: 18px; } |
||||
.bi-custom-show .show-content .buttons div { |
||||
margin: 0 4px; } |
||||
|
||||
.bi-custom-show .show-more { |
||||
text-align: left !important; |
||||
height: 73px; |
||||
background: #F2F4F7; |
||||
margin-bottom: 10px; |
||||
padding: 5px; |
||||
margin-top: 10px; } |
||||
|
||||
.link-font .b-font:before { |
||||
content: "\e759"; |
||||
color: inherit; } |
||||
|
||||
.link-text-font .b-font:before { |
||||
content: "\e763"; |
||||
color: inherit; } |
||||
|
||||
.info-font .b-font:before { |
||||
content: "\e63c"; |
||||
color: inherit; } |
||||
|
||||
.delete-font .b-font:before { |
||||
content: "\e6c4"; |
||||
color: inherit; } |
||||
|
||||
|
||||
/*# sourceMappingURL=style.css.map*/ |
After Width: | Height: | Size: 484 B |
Loading…
Reference in new issue