📄 th_breakersymbol.java
字号:
/**
* @(#) TH_BreakerSymbol.java 2007-11-9
*
* TIANHUI 2007
*/
package com.th.workframe;
import java.io.IOException;
import com.esri.arcgis.display.CharacterMarkerSymbol;
import com.esri.arcgis.display.IColor;
import com.esri.arcgis.display.MultiLayerMarkerSymbol;
import com.esri.arcgis.display.RgbColor;
import com.esri.arcgis.interop.AutomationException;
import com.esri.arcgis.support.ms.stdole.Font;
import com.esri.arcgis.support.ms.stdole.StdFont;
/**
* <code><strong> TH_BreakerSymbol 开关修饰符号 </strong><code>
*
* @author <strong> GUJUN </strong>
* @version 2007-11-9 下午14:34:20
* @since 1.0
*/
public class TH_BreakerSymbol
extends MultiLayerMarkerSymbol {
//开关状态
public static int SWITCH_CLOSE = 0;
public static int SWITCH_ON = 1;
//符号序号
private int bgIndex = 67;
private int brIndex = 68;
//开关符号的组成元素与背景色
private CharacterMarkerSymbol breaker, bg1;
/**
* 串行版本标识
*/
private static final long serialVersionUID = 1L;
/**
* 构造函数
* @param status int 开关状态
* @param size double 符号大小
* @param color int 符号的颜色
* @param bgColor int 符号的背景色
*/
public TH_BreakerSymbol(int status, double size, int color, int bgColor) throws Exception {
if(status > TH_BreakerSymbol.SWITCH_CLOSE ) {
openBreaker(size, color, bgColor);
}else {
closeBreaker(size, color, bgColor);
}//Endif
}
/**
* openBreaker() 未闭合的开关
* @param size double 符号大小
* @param color int 符号的颜色
* @param bgColor int 符号的背景色
* @throws Exception
*/
private void openBreaker(double size, int color, int bgColor) throws Exception {
//字体
Font symbolFont = new StdFont();
symbolFont.setName(TH_GISFont.FONT_NAME);
//构建符号背景
bg1 = new CharacterMarkerSymbol();
bg1.setFont(symbolFont);
bg1.setCharacterIndex(bgIndex);
this.setBackground(bgColor);
//构建符号
breaker = new CharacterMarkerSymbol();
breaker.setFont(symbolFont);
breaker.setCharacterIndex(brIndex);
this.setColor(color);
//设置大小
this.setSize(size);
//组成开关符号
this.addLayer(bg1);
this.addLayer(breaker);
}
/**
* closeBreaker() 闭合的开关
* @param size double 符号大小
* @param color int 符号的颜色
* @param bgColor int 符号的背景色
* @throws Exception
*/
private void closeBreaker(double size, int color, int bgColor) throws Exception {
//字体
Font symbolFont = new StdFont();
symbolFont.setName(TH_GISFont.FONT_NAME);
//构建符号
breaker = new CharacterMarkerSymbol();
breaker.setFont(symbolFont);
breaker.setCharacterIndex(bgIndex);
this.setColor(color);
//设置大小
this.setSize(size);
//组成开关符号
this.addLayer(breaker);
}
/**
* setBackground() 设置符号背景色
* @param bgColor int 十六进制颜色
* @throws Exception
*/
public void setBackground(int bgColor) throws Exception {
//如果是闭合则返回
if(bg1 == null) {
return;
}//Endif
IColor icolor = new RgbColor();
icolor.setRGB(bgColor);
bg1.setColor(icolor);
}
/**
* setColor() 设置符号前景色
* @param color int 十六进制颜色
* @throws Exception
*/
public void setColor(int color) throws Exception {
IColor icolor = new RgbColor();
icolor.setRGB(color);
breaker.setColor(icolor);
}
/**
* setSize() 设置符号大小
* @param size double 符号大小
* @throws AutomationException, IOException
*/
public void setSize(double size) throws AutomationException, IOException {
//如果是闭合则不设置背景大小
if(bg1 != null) {
bg1.setSize(size);
}//Endif
breaker.setSize(size);
}
/**
* setScale() 设置符号的显示比例
* @param scale double 比例值
* @throws Exception
*/
public void setScale(double scale) throws Exception {
//如果是闭合则不设置背景比例
if(bg1 != null) {
bg1.setXScale(scale);
bg1.setYScale(scale);
}//Endif
breaker.setXScale(scale);
breaker.setYScale(scale);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -