diff --git a/designer/src/com/fr/design/mainframe/bbs/BBSBrowserDialog.java b/designer/src/com/fr/design/mainframe/bbs/BBSBrowserDialog.java deleted file mode 100644 index 718e4d24d0..0000000000 --- a/designer/src/com/fr/design/mainframe/bbs/BBSBrowserDialog.java +++ /dev/null @@ -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); - } -} \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/bbs/DisplayThread.java b/designer/src/com/fr/design/mainframe/bbs/DisplayThread.java deleted file mode 100644 index c3b3ce6551..0000000000 --- a/designer/src/com/fr/design/mainframe/bbs/DisplayThread.java +++ /dev/null @@ -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; - } - } -} \ No newline at end of file diff --git a/designer/src/com/fr/grid/GridUI.java b/designer/src/com/fr/grid/GridUI.java index 2215fc2b79..9a972db7b1 100644 --- a/designer/src/com/fr/grid/GridUI.java +++ b/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]; diff --git a/designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java b/designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java index 96f92d58b5..246f7599c0 100644 --- a/designer/src/com/fr/quickeditor/cellquick/CellFormulaQuickEditor.java +++ b/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(); diff --git a/designer_base/src/com/fr/design/bbs/BBSLoginUtils.java b/designer_base/src/com/fr/design/bbs/BBSLoginUtils.java index 51d236e9c7..e57f8494fc 100644 --- a/designer_base/src/com/fr/design/bbs/BBSLoginUtils.java +++ b/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()); @@ -22,16 +26,14 @@ public class BBSLoginUtils { } public static void bbsLogin(List list){ - try{ + try { 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){ + } catch (Exception e) { FRContext.getLogger().error(e.getMessage()); } }