Browse Source

根据显示的长度来定义间隔符

feature/big-screen
Maksim 5 years ago
parent
commit
c3d397bee3
  1. 2
      designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java
  2. 8
      designer-base/src/main/java/com/fr/env/CheckServiceDialog.java
  3. 39
      designer-base/src/main/java/com/fr/env/utils/DisplayUtils.java
  4. 2
      designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java
  5. 52
      designer-base/src/test/java/com/fr/env/utils/DisplayUtilsTest.java

2
designer-base/src/main/java/com/fr/design/EnvChangeEntrance.java

@ -14,7 +14,7 @@ import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.utils.DesignUtils;
import com.fr.design.write.submit.CheckServiceDialog;
import com.fr.env.CheckServiceDialog;
import com.fr.env.EnvListPane;
import com.fr.exit.DesignerExiter;
import com.fr.general.GeneralContext;

8
designer-base/src/main/java/com/fr/design/write/submit/CheckServiceDialog.java → designer-base/src/main/java/com/fr/env/CheckServiceDialog.java vendored

@ -1,4 +1,4 @@
package com.fr.design.write.submit;
package com.fr.env;
import com.fr.design.DesignerEnvManager;
import com.fr.design.env.RemoteDesignerWorkspaceInfo;
@ -7,6 +7,7 @@ import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.env.utils.DisplayUtils;
import com.fr.general.FRFont;
import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
@ -56,7 +57,10 @@ public class CheckServiceDialog extends JDialog implements ActionListener {
JLabel label = new JLabel(Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Branch_Inconsistency"));
label.setFont(font);
label.setPreferredSize(new Dimension(650,30));
String delimiter = GeneralContext.getLocale().equals(Locale.US)? "<br>":"/";
String text = Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Local_Designer") + localBranch
+ Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Remote_Server") + remoteBranch;
String delimiter = DisplayUtils.getDisplayLength(text) > 70? "<br>":"/";
JLabel label2 = new JLabel("<html>"+Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Local_Designer")
+ localBranch + delimiter + Toolkit.i18nText("Fine-Design_Basic_Remote_Design_Remote_Server") + remoteBranch+"</html>");
label2.setPreferredSize(new Dimension(600,30));

39
designer-base/src/main/java/com/fr/env/utils/DisplayUtils.java vendored

@ -0,0 +1,39 @@
package com.fr.env.utils;
/**
* @author: Maksim
* @Date: Created in 2020/3/16
* @Description:
*/
public class DisplayUtils {
/**
* 获取字符串显示时的计算长度
* @param text 被计算的字符串
* @return 计算长度
*/
public static int getDisplayLength(String text){
if (text == null) {
return 0;
}
char[] c = text.toCharArray();
int len = 0;
for (int i = 0; i < c.length; i++) {
len++;
if(!isLetter(c[i])){
len++;
};
}
return len;
}
/**
* 判断字符是否为字母数字英文符号
* @param c 传入的字符
* @return 如果符合上述条件返回true
*/
public static boolean isLetter(char c) {
int k = 0x80;
return c / k == 0;
}
}

2
designer-base/src/test/java/com/fr/design/EnvChangeEntranceTest.java

@ -2,7 +2,7 @@ package com.fr.design;
import com.fr.design.env.DesignerWorkspaceInfo;
import com.fr.design.env.DesignerWorkspaceType;
import com.fr.design.write.submit.CheckServiceDialog;
import com.fr.env.CheckServiceDialog;
import com.fr.workspace.connect.WorkspaceConnectionInfo;
import com.fr.workspace.engine.channel.http.FunctionalHttpRequest;
import org.easymock.EasyMock;

52
designer-base/src/test/java/com/fr/env/utils/DisplayUtilsTest.java vendored

@ -0,0 +1,52 @@
package com.fr.env.utils;
import org.junit.Assert;
import org.junit.Test;
/**
* @author: Maksim
* @Date: Created in 2020/3/16
* @Description:
*/
public class DisplayUtilsTest {
@Test
public void getDisplayLengthTest() {
String s1 = "本地设计器";
String s2 = "リモートサーバ";
String s3 = "Local Designer:";
String s4 = "本地,设,计器: persist-2020.01.15";
String s5 = "ローカルデザイナrelease-2020.03.03 ... Remote Server:persist-2020.01.15";
String s6 = "本地 00:00ロ ーカDE / abc ";
int length1 = DisplayUtils.getDisplayLength(s1);
int length2 = DisplayUtils.getDisplayLength(s2);
int length3 = DisplayUtils.getDisplayLength(s3);
int length4 = DisplayUtils.getDisplayLength(s4);
int length5 = DisplayUtils.getDisplayLength(s5);
int length6 = DisplayUtils.getDisplayLength(s6);
Assert.assertEquals(10,length1);
Assert.assertEquals(14,length2);
Assert.assertEquals(15,length3);
Assert.assertEquals(34,length4);
Assert.assertEquals(72,length5);
Assert.assertEquals(26,length6);
}
@Test
public void isLetterTest(){
char c1 = 'A';
char c2 = '中';
char c3 = ',';
char c4 = ',';
char c5 = 'デ';
char c6 = ' ';
Assert.assertTrue(DisplayUtils.isLetter(c1));
Assert.assertFalse(DisplayUtils.isLetter(c2));
Assert.assertTrue(DisplayUtils.isLetter(c3));
Assert.assertFalse(DisplayUtils.isLetter(c4));
Assert.assertFalse(DisplayUtils.isLetter(c5));
Assert.assertTrue(DisplayUtils.isLetter(c6));
}
}
Loading…
Cancel
Save