Browse Source

Merge branch 'release/9.0' of ssh://cloud.finedevelop.com:7999/~hzzz/design into release/9.0

hzzz 7 years ago
parent
commit
fc34b9080d
  1. 93
      designer/src/com/fr/design/mainframe/bbs/BBSBrowserDialog.java
  2. 46
      designer/src/com/fr/design/mainframe/bbs/DisplayThread.java
  3. 15
      designer/src/com/fr/grid/GridUI.java
  4. 9
      designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java
  5. 14
      designer_base/src/com/fr/design/bbs/BBSLoginUtils.java

93
designer/src/com/fr/design/mainframe/bbs/BBSBrowserDialog.java

@ -1,93 +0,0 @@
package com.fr.design.mainframe.bbs;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Frame;
import org.eclipse.swt.SWT;
import org.eclipse.swt.awt.SWT_AWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import com.fr.design.dialog.UIDialog;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.Inter;
/**
* 封装浏览器的dialog
*
*/
public class BBSBrowserDialog extends UIDialog {
private static final int WIDTH = 600;
private static final int HEIGHT = 400;
private DisplayThread displayThread;
private Canvas canvas;
private String url;
public BBSBrowserDialog(Frame parent) {
super(parent);
this.displayThread = new DisplayThread();
this.displayThread.start();
this.canvas = new Canvas();
setLayout(new BorderLayout());
add(canvas, BorderLayout.CENTER);
this.setSize(WIDTH, HEIGHT);
GUICoreUtils.centerWindow(this);
}
@Override
public String getTitle() {
return Inter.getLocText("FR-Designer_Forum");
}
/**
* 通知组件可以显示了
*
*/
public void addNotify() {
super.addNotify();
Display dis = displayThread.getDisplay();
dis.syncExec(new Runnable() {
public void run() {
Shell shell = SWT_AWT.new_Shell(displayThread.getDisplay(), canvas);
shell.setLayout(new FillLayout());
final Browser browser = new Browser(shell, SWT.NONE);
browser.setLayoutData(BorderLayout.CENTER);
browser.setUrl(url);
}
});
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/**
* 检测面板中内容合法性
*
*/
public void checkValid() throws Exception {
}
/**
* 在窗口中显示指定的url
*
* @param url 指定的url
*
*/
public void showWindow(String url){
this.setUrl(url);
this.setVisible(true);
}
}

46
designer/src/com/fr/design/mainframe/bbs/DisplayThread.java

@ -1,46 +0,0 @@
package com.fr.design.mainframe.bbs;
import org.eclipse.swt.widgets.Display;
public class DisplayThread extends Thread {
private Display display;
Object sem = new Object();
/**
* 运行
*
*/
public void run() {
synchronized (sem) {
display = Display.getDefault();
sem.notifyAll();
}
swtEventLoop();
}
private void swtEventLoop() {
while (true) {
try{
if (!display.readAndDispatch()) {
display.sleep();
}
}catch (Exception e) {
continue;
}
}
}
public Display getDisplay() {
try {
synchronized (sem) {
while (display == null) {
sem.wait();
}
return display;
}
} catch (Exception e) {
return null;
}
}
}

15
designer/src/com/fr/grid/GridUI.java

@ -779,17 +779,10 @@ public class GridUI extends ComponentUI {
private void paintGridSelectionForFormula(Graphics2D g2d, ElementCase report, CellSelection cs) {
// denny: 标记公式用到的单元格
if (report.getCellValue(cs.getColumn(), cs.getRow()) instanceof BaseFormula) {
BaseFormula tmpFormula = (BaseFormula) report
.getCellValue(cs.getColumn(), cs.getRow());
String statement = tmpFormula.getContent();
// denny: 获得公式中包含的所有单元格
ColumnRow[] columnRowArray = new ColumnRow[0];
try {
columnRowArray = CalculatorUtils.relatedColumnRowArray(statement.substring(1));
} catch (ANTLRException ae) {
// do nothing.
}
Object cellValue = report.getCellValue(cs.getColumn(), cs.getRow());
if (cellValue instanceof BaseFormula) {
BaseFormula tmpFormula = (BaseFormula) cellValue;
ColumnRow[] columnRowArray = tmpFormula.getRelatedColumnRows();
Area formulaCellArea = null;
for (int i = 0; i < columnRowArray.length; i++) {
ColumnRow columnRow = columnRowArray[i];

9
designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java

@ -46,6 +46,7 @@ import java.awt.event.KeyEvent;
public class CellFormulaQuickEditor extends CellQuickEditor {
//文本域
private UITextField formulaTextField;
private BaseFormula formula;
//编辑状态
private boolean isEditing = false;
@ -104,11 +105,15 @@ public class CellFormulaQuickEditor extends CellQuickEditor {
public void actionPerformed(ActionEvent evt) {
String text = formulaTextField.getText();
final UIFormula formulaPane = FormulaFactory.createFormulaPane();
formulaPane.populate(BaseFormula.createFormulaBuilder().build(text));
if (formula != null) {
formula.setContent(text);
}
formulaPane.populate(formula);
formulaPane.showLargeWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
BaseFormula fm = formulaPane.update();
formula = fm;
if (fm.getContent().length() <= 1) {
formulaTextField.setText(DEFAULT_FORMULA);
} else {
@ -181,7 +186,7 @@ public class CellFormulaQuickEditor extends CellQuickEditor {
if (value == null) {
str = StringUtils.EMPTY;
} else if (value instanceof BaseFormula) {
BaseFormula formula = (BaseFormula) value;
formula = (BaseFormula) value;
str = formula.getContent();
reserveInResult = formula.isReserveInResult();
reserveOnWriteOrAnaly = formula.isReserveOnWriteOrAnaly();

14
designer_base/src/com/fr/design/bbs/BBSLoginUtils.java

@ -2,6 +2,8 @@ package com.fr.design.bbs;
import com.fr.base.ConfigManager;
import com.fr.base.FRContext;
import com.fr.base.entity.BBSAttr;
import com.fr.base.entity.LoginTypeKey;
import com.fr.stable.StringUtils;
import java.util.List;
@ -13,8 +15,10 @@ public class BBSLoginUtils {
public static void bbsLogin(String username, String password){
try{
ConfigManager.getProviderInstance().setBbsUsername(username);
ConfigManager.getProviderInstance().setBbsPassword(password);
BBSAttr bbsAttr = new BBSAttr();
bbsAttr.setBbsUsername(username);
bbsAttr.setBbsPassword(password);
ConfigManager.getProviderInstance().setAttribute(LoginTypeKey.LOGIN_TYPE_BBS, bbsAttr);
FRContext.getCurrentEnv().writeResource(ConfigManager.getProviderInstance());
}catch (Exception e){
FRContext.getLogger().error(e.getMessage());
@ -26,10 +30,8 @@ public class BBSLoginUtils {
String uid = list.get(0);
String username = list.get(1);
String password = list.get(2);
ConfigManager.getProviderInstance().setBbsUsername(username);
ConfigManager.getProviderInstance().setBbsPassword(password);
ConfigManager.getProviderInstance().setBbsUid(Integer.parseInt(uid));
ConfigManager.getProviderInstance().setInShowBBsName(username);
BBSAttr bbsAttr = new BBSAttr(username, password, Integer.parseInt(uid), username);
ConfigManager.getProviderInstance().setAttribute(LoginTypeKey.LOGIN_TYPE_BBS, bbsAttr);
FRContext.getCurrentEnv().writeResource(ConfigManager.getProviderInstance());
} catch (Exception e) {
FRContext.getLogger().error(e.getMessage());

Loading…
Cancel
Save