📄 libpanel.java
字号:
//do combo changing here.
return;
}
AbstractLibrary lib;
if (m_type==TYPE_LIBRARY)
lib =new JFLibrary();
else
lib =new JFTemplate();
lib.loadFromBinary(fileName,m_canvas);
lib.setFilename(fileName);
m_libList.add(lib);
m_combo.addItem(lib.getTitle());
setCurrLibIndex(m_libList.size()-1);
resizeComponents();
} catch(Exception e) {
m_logger.error("loadLibrary: "+e);
}
}
/** create a new binary library file and open it.
*/
public void newLibrary(){
int i=m_libList.size()+1;
String title="";
if (m_type==TYPE_LIBRARY)
title =CADResource.getString("label.library.library")+'-'+i;
else
title =CADResource.getString("label.library.template")+'-'+i;
String newTitle=LabelDialog.getNewLabel(this,title);
if (newTitle!=null && newTitle.length()>0)
title =newTitle;
String fileName = FileAction.getOutputFileName(this,m_fileExt,m_fileDesc);
if (fileName==null || fileName.length()==0)
return;
AbstractLibrary lib;
if (m_type==TYPE_LIBRARY)
lib =new JFLibrary();
else
lib =new JFTemplate();
lib.saveToBinary(fileName);
lib.setFilename(fileName);
lib.setTitle(title);
m_libList.add(lib);
m_combo.addItem(title);
setCurrLibIndex(m_libList.size()-1);
}
/** modify properties of current libary.
*/
private void modifyLibrary(){
int index =m_currLibIndex;
if (index<0)
return;
try{
AbstractLibrary lib =(AbstractLibrary)m_libList.get(index);
String title =lib.getTitle();
String newTitle=LabelDialog.getNewLabel(this,title);
if (newTitle!=null && newTitle.length()>0 && !title.equals(newTitle)){
lib.setTitle(newTitle);
lib.setModified(true);
m_preventComboChanging=true;
showComboItems();
setCurrLibIndex(index);
}
}catch(Exception e){
}
m_preventComboChanging=false;
}
/** save all libraries opened to binary library files.
*/
public void saveLibrary(){
Iterator it =m_libList.iterator();
while (it!=null && it.hasNext()){
AbstractLibrary lib =(AbstractLibrary)it.next();
if (lib.isModified()){
lib.saveToBinary(lib.getFilename());
}
}
}
/** Remove current library from list.
* Attention: this operation will not actually remove the binary library file in your file system.
*/
private void removeLibrary(){
int index =m_combo.getSelectedIndex();
if (index>=0){
int n = JOptionPane.showConfirmDialog(
null,
CADResource.getString("dialog.library.remove"),
CADResource.getString("sys.warn"),
JOptionPane.YES_NO_OPTION);
if (n==JOptionPane.YES_OPTION){
try{
m_combo.removeItemAt(index);
m_libList.remove(index);
index--;
if (index<0)
index =0;
if (m_libList.size()==0)
index =-1;
setCurrLibIndex(index);
}catch(Exception e){
}
}
}
}
//insert current picked library into drawing canvas
public void insertCurrLibInto(){
//get current picked library from lib canvas.
JFLibElem libElem =m_canvas.getLastPickedElement();
if (libElem==null)
return;
if (m_type==TYPE_LIBRARY){
//get current drawing canvas in CAD Pane.
DrawCanvas drawCanvas =m_pane.getDrawCanvas();
if (drawCanvas==null)
return;
//view center of drawing canvas
JFPoint center =drawCanvas.getViewCenter();
//new object id.
JFPage page =drawCanvas.getDrawPage();
ObjectList objList =page.getCurrentLayer().getShapeList();
int newObjectId =objList.newObjectId();
//libElem.setElementId(newObjectId);
//clone a new library.
AbstractShape shape =null;
try{
shape =(AbstractShape)libElem.getElement().clone();
}catch(Exception e){
}
if (shape==null)
return;
JFClipboard.finishLoading(shape,newObjectId);
JFImage.finishLoadingImages(shape,m_canvas);
if (page.isHidePorts())
shape.setShowDesign(false);
else
shape.setShowDesign(true);
//adjust poistion of library to be inserted.
JFPoint shapeCenter =shape.getBounds().getCenter();
shape.moveBy(center.getX()-shapeCenter.getX(),center.getY()-shapeCenter.getY());
shape.setZoomScale(page.getZoomScale());
//add to object list of drawing canvas.
try{
//register a new operations to operation manager.
drawCanvas.getOperationManager().addNew(shape,null,null);
objList.add(shape);
page.setModified(true);
drawCanvas.getSelection().clear();
drawCanvas.getSelection().getList().add(shape);
drawCanvas.repaint();
}catch(Exception e){
}
}else{
//clone a new page from element.
JFPage page =null;
try{
page =(JFPage)libElem.getElement().clone();
if (page!=null){
JFClipboard.finishLoading(page,1);
}
}catch(Exception e){
}
if (page==null)
return;
FileAction action =new FileAction(m_pane);
action.newFile();
//get current drawing canvas in DrawAdapter
DrawCanvas drawCanvas =m_pane.getDrawCanvas();
if (drawCanvas==null)
return;
//set draw page.
page.setModified(true);
drawCanvas.setDrawPage(page);
drawCanvas.repaint();
}
}
//remove current picked library from list.
private void removeCurrLib(){
JFLibElem elem =m_canvas.getLastPickedElement();
if (elem==null)
return;
int n = JOptionPane.showConfirmDialog(
null,
CADResource.getString("dialog.library.curr.remove"),
CADResource.getString("sys.warn"),
JOptionPane.YES_NO_OPTION);
if (n==JOptionPane.YES_OPTION){
AbstractLibrary lib=m_canvas.getLibrary();
lib.remove(elem);
m_canvas.repaint();
}
}
/** popup library/template menu for actions.
* @param e An action event.
*/
private void popupLibMenu(ActionEvent e){
Component c =(Component)e.getSource();
Rectangle rect =c.getBounds();
m_menu.show(c,rect.width,0);
}
/**
* add library menus to a menu container.
*/
public static void addLibraryMenus(Container c, ActionListener listener){
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.load.label"),
"general/open16",
CADResource.getChar("menuitem.library.load.mnemonic"),
CADResource.getChar("menuitem.library.load.accelerator"),
CADResource.getString("menuitem.library.load.keymask"),
CMD_LIB_LOAD,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.loadurl.label"),
"general/open16",
CADResource.getChar("menuitem.library.loadurl.mnemonic"),
CADResource.getChar("menuitem.library.loadurl.accelerator"),
CADResource.getString("menuitem.library.loadurl.keymask"),
CMD_LIB_LOADURL,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.save.label"),
"general/save16",
CADResource.getChar("menuitem.library.save.mnemonic"),
CADResource.getChar("menuitem.library.save.accelerator"),
CADResource.getString("menuitem.library.save.keymask"),
CMD_LIB_SAVE,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.new.label"),
"general/new16",
CADResource.getChar("menuitem.library.new.mnemonic"),
CADResource.getChar("menuitem.library.new.accelerator"),
CADResource.getString("menuitem.library.new.keymask"),
CMD_LIB_NEW,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.modify.label"),
"general/edit16",
CADResource.getChar("menuitem.library.modify.mnemonic"),
CADResource.getChar("menuitem.library.modify.accelerator"),
CADResource.getString("menuitem.library.modify.keymask"),
CMD_LIB_MODIFY,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.remove.label"),
"general/delete16",
CADResource.getChar("menuitem.library.remove.mnemonic"),
CADResource.getChar("menuitem.library.remove.accelerator"),
CADResource.getString("menuitem.library.remove.keymask"),
CMD_LIB_REMOVE,
listener));
}
/**
* add template menus to a menu container.
*/
public static void addTemplateMenus(Container c, ActionListener listener){
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.load.label"),
"general/open16",
CADResource.getChar("menuitem.template.load.mnemonic"),
CADResource.getChar("menuitem.template.load.accelerator"),
CADResource.getString("menuitem.template.load.keymask"),
CMD_LIB_LOAD,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.loadurl.label"),
"general/open16",
CADResource.getChar("menuitem.template.loadurl.mnemonic"),
CADResource.getChar("menuitem.template.loadurl.accelerator"),
CADResource.getString("menuitem.template.loadurl.keymask"),
CMD_LIB_LOADURL,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.save.label"),
"general/save16",
CADResource.getChar("menuitem.template.save.mnemonic"),
CADResource.getChar("menuitem.template.save.accelerator"),
CADResource.getString("menuitem.template.save.keymask"),
CMD_LIB_SAVE,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.new.label"),
"general/new16",
CADResource.getChar("menuitem.template.new.mnemonic"),
CADResource.getChar("menuitem.template.new.accelerator"),
CADResource.getString("menuitem.template.new.keymask"),
CMD_LIB_NEW,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.modify.label"),
"general/edit16",
CADResource.getChar("menuitem.template.modify.mnemonic"),
CADResource.getChar("menuitem.template.modify.accelerator"),
CADResource.getString("menuitem.template.modify.keymask"),
CMD_LIB_MODIFY,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.remove.label"),
"general/delete16",
CADResource.getChar("menuitem.template.remove.mnemonic"),
CADResource.getChar("menuitem.template.remove.accelerator"),
CADResource.getString("menuitem.template.remove.keymask"),
CMD_LIB_REMOVE,
listener));
}
/**
* an current library operation menus.
*/
public static void addCurrLibraryMenus(Container c, ActionListener listener){
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.current.insertinto.label"),
"general/add16",
CADResource.getChar("menuitem.library.current.insertinto.mnemonic"),
CADResource.getChar("menuitem.library.current.insertinto.accelerator"),
CADResource.getString("menuitem.library.current.insertinto.keymask"),
CMD_LIB_CURR_INSERTINTO,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.library.current.remove.label"),
"general/delete16",
CADResource.getChar("menuitem.library.current.remove.mnemonic"),
CADResource.getChar("menuitem.library.current.remove.accelerator"),
CADResource.getString("menuitem.library.current.remove.keymask"),
CMD_LIB_CURR_REMOVE,
listener));
}
/**
* an current template operation menus.
*/
public static void addCurrTemplateMenus(Container c, ActionListener listener){
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.current.insertinto.label"),
"general/add16",
CADResource.getChar("menuitem.template.current.insertinto.mnemonic"),
CADResource.getChar("menuitem.template.current.insertinto.accelerator"),
CADResource.getString("menuitem.template.current.insertinto.keymask"),
CMD_LIB_CURR_INSERTINTO,
listener));
c.add(ToolFactory.createMenuItem(CADResource.getString("menuitem.template.current.remove.label"),
"general/delete16",
CADResource.getChar("menuitem.template.current.remove.mnemonic"),
CADResource.getChar("menuitem.template.current.remove.accelerator"),
CADResource.getString("menuitem.template.current.remove.keymask"),
CMD_LIB_CURR_REMOVE,
listener));
}
public void componentHidden(ComponentEvent e) {
}
public void componentMoved(ComponentEvent e) {
}
public void componentResized(ComponentEvent e) {
resizeComponents();
}
public void componentShown(ComponentEvent e) {
resizeComponents();
}
public void itemStateChanged(ItemEvent e){
comboItemChanged();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -