forked from fanruan/design
fly.li
3 years ago
70 changed files with 2768 additions and 599 deletions
@ -0,0 +1,79 @@ |
|||||||
|
package com.fr.design.cell; |
||||||
|
|
||||||
|
import com.fr.report.cell.CellElementBorderSourceFlag; |
||||||
|
import com.fr.base.CellBorderStyle; |
||||||
|
import com.fr.base.Style; |
||||||
|
import com.fr.design.mainframe.theme.utils.DefaultThemedTemplateCellElementCase; |
||||||
|
import com.fr.report.cell.TemplateCellElement; |
||||||
|
|
||||||
|
import javax.swing.JPanel; |
||||||
|
import java.awt.Dimension; |
||||||
|
import java.awt.GridLayout; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Starryi |
||||||
|
* @version 1.0 |
||||||
|
* Created by Starryi on 2021/9/3 |
||||||
|
*/ |
||||||
|
public class CellRectangleStylePreviewPane extends JPanel { |
||||||
|
private static final int ROW_COUNT = 2; |
||||||
|
private static final int COLUMN_COUNT = 2; |
||||||
|
|
||||||
|
private final TemplateCellElement[][] cellElementGrid = new TemplateCellElement[ROW_COUNT][COLUMN_COUNT]; |
||||||
|
private final CellStylePreviewPane[][] cellStylePreviewPaneGrid = new CellStylePreviewPane[ROW_COUNT][COLUMN_COUNT]; |
||||||
|
|
||||||
|
public CellRectangleStylePreviewPane() { |
||||||
|
setLayout(new GridLayout(2, 2)); |
||||||
|
|
||||||
|
for (int r = 0; r < ROW_COUNT; r++) { |
||||||
|
for (int c = 0; c < COLUMN_COUNT; c++) { |
||||||
|
CellStylePreviewPane pane = new CellStylePreviewPane(); |
||||||
|
TemplateCellElement cellElement = DefaultThemedTemplateCellElementCase.createInstance(c, r); |
||||||
|
int flags = CellElementBorderSourceFlag.ALL_BORDER_SOURCE_OUTER; |
||||||
|
if (r != 0) { |
||||||
|
flags |= CellElementBorderSourceFlag.TOP_BORDER_SOURCE_INNER; |
||||||
|
} |
||||||
|
if (r != ROW_COUNT - 1) { |
||||||
|
flags |= CellElementBorderSourceFlag.BOTTOM_BORDER_SOURCE_INNER; |
||||||
|
} |
||||||
|
if (c != 0) { |
||||||
|
flags |= CellElementBorderSourceFlag.LEFT_BORDER_SOURCE_INNER; |
||||||
|
} |
||||||
|
if (c != COLUMN_COUNT - 1) { |
||||||
|
flags |= CellElementBorderSourceFlag.RIGHT_BORDER_SOURCE_INNER; |
||||||
|
} |
||||||
|
cellElement.setBorderSourceFlags(flags); |
||||||
|
|
||||||
|
pane.setStyle(cellElement.getStyle()); |
||||||
|
add(pane); |
||||||
|
|
||||||
|
cellElementGrid[r][c] = cellElement; |
||||||
|
cellStylePreviewPaneGrid[r][c] = pane; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void setPlainText(String text) { |
||||||
|
cellStylePreviewPaneGrid[0][1].setPaintText(text); |
||||||
|
cellStylePreviewPaneGrid[1][1].setPaintText(text); |
||||||
|
repaint(); |
||||||
|
} |
||||||
|
|
||||||
|
public void setStyle(Style style, CellBorderStyle borderStyle) { |
||||||
|
for (int i = 0; i < ROW_COUNT; i++) { |
||||||
|
for (int j = 0; j < COLUMN_COUNT; j++) { |
||||||
|
CellStylePreviewPane pane = cellStylePreviewPaneGrid[i][j]; |
||||||
|
TemplateCellElement cellElement = cellElementGrid[i][j]; |
||||||
|
cellElement.setStyle(style, borderStyle); |
||||||
|
|
||||||
|
pane.setStyle(cellElement.getStyle()); |
||||||
|
} |
||||||
|
} |
||||||
|
repaint(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Dimension getMinimumSize() { |
||||||
|
return getPreferredSize(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,52 @@ |
|||||||
|
package com.fr.design.config; |
||||||
|
|
||||||
|
import com.fr.general.IOUtils; |
||||||
|
import com.fr.log.FineLoggerFactory; |
||||||
|
import com.fr.stable.StableUtils; |
||||||
|
import com.fr.stable.StringUtils; |
||||||
|
|
||||||
|
import java.io.BufferedInputStream; |
||||||
|
import java.io.FileInputStream; |
||||||
|
import java.io.FileNotFoundException; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.util.Properties; |
||||||
|
|
||||||
|
public class DesignerProperties { |
||||||
|
private static DesignerProperties holder = null; |
||||||
|
private boolean supportLoginEntry = true; |
||||||
|
|
||||||
|
public DesignerProperties() { |
||||||
|
String filePath = StableUtils.pathJoin(StableUtils.getInstallHome(), "/config/config.properties"); |
||||||
|
InputStream is = null; |
||||||
|
try { |
||||||
|
is = new BufferedInputStream(new FileInputStream(filePath)); |
||||||
|
Properties ps = new Properties(); |
||||||
|
ps.load(is); |
||||||
|
this.initProperties(ps); |
||||||
|
} catch (FileNotFoundException e) { |
||||||
|
// ignore
|
||||||
|
} catch (Exception e) { |
||||||
|
FineLoggerFactory.getLogger().error(e, e.getMessage()); |
||||||
|
} finally { |
||||||
|
IOUtils.close(is); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public static DesignerProperties getInstance() { |
||||||
|
if (holder == null) { |
||||||
|
holder = new DesignerProperties(); |
||||||
|
} |
||||||
|
return holder; |
||||||
|
} |
||||||
|
|
||||||
|
private void initProperties(Properties ps) { |
||||||
|
String supportLoginEntry = ps.getProperty("supportLoginEntry"); |
||||||
|
if (StringUtils.isNotEmpty(supportLoginEntry)) { |
||||||
|
this.supportLoginEntry = Boolean.valueOf(supportLoginEntry); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public boolean isSupportLoginEntry() { |
||||||
|
return supportLoginEntry; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,5 @@ |
|||||||
|
package com.fr.design.constants; |
||||||
|
|
||||||
|
public class TableDataConstants { |
||||||
|
public static final String SEPARATOR = "_"; |
||||||
|
} |
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,96 @@ |
|||||||
|
package com.fr.design.formula.exception.function; |
||||||
|
|
||||||
|
import com.fr.design.i18n.Toolkit; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Hoky |
||||||
|
* @date 2021/11/30 |
||||||
|
*/ |
||||||
|
public class TranslateTokenUtils { |
||||||
|
public static String translateToken(String token) { |
||||||
|
switch (token) { |
||||||
|
case ("RPAREN"): |
||||||
|
return ")"; |
||||||
|
case ("LPAREN"): |
||||||
|
return "("; |
||||||
|
case ("COMMA"): |
||||||
|
return ","; |
||||||
|
case ("COLON"): |
||||||
|
return ":"; |
||||||
|
case ("EOF"): |
||||||
|
return Toolkit.i18nText("Fine-Design_Basic_Formula_Check_Mismatched_EOF"); |
||||||
|
case ("DOT"): |
||||||
|
return "."; |
||||||
|
case ("FLOT_NUM"): |
||||||
|
return Toolkit.i18nText("Fine-Design_Basic_Formula_Float_Number"); |
||||||
|
case ("LOR"): |
||||||
|
return "||"; |
||||||
|
case ("LAND"): |
||||||
|
return "&&"; |
||||||
|
case ("EQUAL"): |
||||||
|
return "="; |
||||||
|
case ("EQUAL2"): |
||||||
|
return "="; |
||||||
|
case ("NOT_EQUAL"): |
||||||
|
return "!="; |
||||||
|
case ("NOT_EQUAL2"): |
||||||
|
return "!="; |
||||||
|
case ("GE"): |
||||||
|
return ">="; |
||||||
|
case ("LE"): |
||||||
|
return "<="; |
||||||
|
case ("LT"): |
||||||
|
return "<"; |
||||||
|
case ("PLUS"): |
||||||
|
return "+"; |
||||||
|
case ("MINUS"): |
||||||
|
return "-"; |
||||||
|
case ("STAR"): |
||||||
|
return "*"; |
||||||
|
case ("DIV"): |
||||||
|
return "/"; |
||||||
|
case ("MOD"): |
||||||
|
return "%"; |
||||||
|
case ("POWER"): |
||||||
|
return "^"; |
||||||
|
case ("LNOT"): |
||||||
|
return "!"; |
||||||
|
case ("WAVE"): |
||||||
|
return "~"; |
||||||
|
case ("LBRACK"): |
||||||
|
return "["; |
||||||
|
case ("SEMI"): |
||||||
|
return ";"; |
||||||
|
case ("RBRACK"): |
||||||
|
return "]"; |
||||||
|
case ("LCURLY"): |
||||||
|
return "{"; |
||||||
|
case ("RCURLY"): |
||||||
|
return "}"; |
||||||
|
case ("DCOLON"): |
||||||
|
return ";"; |
||||||
|
case ("INT_NUM"): |
||||||
|
return Toolkit.i18nText("Fine-Design_Basic_Formula_Integer"); |
||||||
|
case ("CR_ADRESS"): |
||||||
|
return "\n"; |
||||||
|
case ("SHARP"): |
||||||
|
return "#"; |
||||||
|
case ("AT"): |
||||||
|
return "@"; |
||||||
|
case ("QUESTION"): |
||||||
|
return "?"; |
||||||
|
case ("BOR"): |
||||||
|
return "||"; |
||||||
|
case ("BAND"): |
||||||
|
return "&&"; |
||||||
|
case ("Char"): |
||||||
|
return Toolkit.i18nText("Fine-Design_Basic_Formula_Character"); |
||||||
|
case ("DIGIT"): |
||||||
|
return Toolkit.i18nText("Fine-Design_Basic_Formula_Digital"); |
||||||
|
case ("XDIGIT"): |
||||||
|
return Toolkit.i18nText("Fine-Design_Basic_Formula_Hexadecimal_Digital"); |
||||||
|
default: |
||||||
|
return token; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,17 @@ |
|||||||
|
package com.fr.design.mainframe.theme; |
||||||
|
|
||||||
|
import com.fr.workspace.WorkContext; |
||||||
|
import com.fr.workspace.server.theme.SupportThemedCellInnerBorderFeature; |
||||||
|
import com.fr.workspace.server.theme.ThemedCellBorderFeature; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Starryi |
||||||
|
* @version 1.0 |
||||||
|
* Created by Starryi on 2021/11/26 |
||||||
|
*/ |
||||||
|
public class ThemedFeatureController { |
||||||
|
public static boolean isCellStyleSupportInnerBorder() { |
||||||
|
ThemedCellBorderFeature controller = WorkContext.getCurrent().get(ThemedCellBorderFeature.class); |
||||||
|
return controller instanceof SupportThemedCellInnerBorderFeature; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,54 @@ |
|||||||
|
package com.fr.design.mainframe.cell.settingpane.style; |
||||||
|
|
||||||
|
import com.fr.base.CellBorderStyle; |
||||||
|
import com.fr.base.NameStyle; |
||||||
|
import com.fr.base.Style; |
||||||
|
import com.fr.base.theme.TemplateTheme; |
||||||
|
import com.fr.base.theme.settings.ThemedCellStyle; |
||||||
|
import com.fr.design.file.HistoryTemplateListCache; |
||||||
|
import com.fr.design.mainframe.JTemplate; |
||||||
|
import com.fr.design.mainframe.theme.ThemedCellStyleListPane; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author Starryi |
||||||
|
* @version 1.0 |
||||||
|
* Created by Starryi on 2021/11/23 |
||||||
|
*/ |
||||||
|
public class NameStyleListPane extends ThemedCellStyleListPane { |
||||||
|
|
||||||
|
public NameStyleListPane() { |
||||||
|
} |
||||||
|
|
||||||
|
public NameStyleListPane(boolean supportCellRange) { |
||||||
|
super(supportCellRange); |
||||||
|
} |
||||||
|
|
||||||
|
public void populateNameStyle(NameStyle style) { |
||||||
|
String name = style.getName(); |
||||||
|
JTemplate<?, ?> template = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate(); |
||||||
|
if (template != null) { |
||||||
|
TemplateTheme theme = template.getTemplateTheme(); |
||||||
|
ThemedCellStyle themedCellStyle = theme.getCellStyleList().find(name); |
||||||
|
populateBean(themedCellStyle); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public NameStyle updateNameStyle() { |
||||||
|
ThemedCellStyle themedCellStyle = updateBean(); |
||||||
|
if (themedCellStyle != null) { |
||||||
|
String name = themedCellStyle.getName(); |
||||||
|
Style style = themedCellStyle.getStyle(); |
||||||
|
return NameStyle.getPassiveInstance(name, style); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public CellBorderStyle updateBorderStyle() { |
||||||
|
ThemedCellStyle nameStyle = updateBean(); |
||||||
|
if (nameStyle != null) { |
||||||
|
return nameStyle.getCellBorderStyle(); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue