/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package eric; import eric.GUI.palette.PaletteManager; import eric.GUI.pipe_tools; import eric.GUI.themes; import eric.GUI.window.comments; import eric.GUI.window.tab_main_panel; import eric.JSprogram.JScriptsLeftPanel; import eric.macros.MacroTools; import eric.macros.MacrosList; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.io.ByteArrayInputStream; import java.io.InputStream; import javax.swing.JOptionPane; import rene.gui.Global; import rene.util.FileName; import rene.zirkel.ZirkelCanvas; import rene.zirkel.ZirkelFrame; import rene.zirkel.construction.Construction; import rene.zirkel.construction.ConstructionDisplayPanel; import rene.zirkel.dialogs.Replay; import rene.zirkel.objects.PointObject; /** * * @author erichake */ public class JZirkelCanvas extends JEricPanel { // private static ArrayList allJZFs=new ArrayList(); private ZirkelFrame ZF=null; private JPointName PointLabel; private Replay Dreplay; private static boolean restrictedsession=false; // For unused figures in workbooks, store the inputstream in a // byte array : private byte[] byteinputfile=null; private static String workbookFileName=null; private static JHelpPanel InfoPanel=new JHelpPanel(); private static MacrosList MacroPanel=null; private static JScriptsLeftPanel ScriptsLeftPanel = new JScriptsLeftPanel(); @Override public void paintComponent(final java.awt.Graphics g) { } public JZirkelCanvas() { super(); setLayout(new BorderLayout()); setOpaque(true); ZF=new ZirkelFrame(pipe_tools.isApplet()); ZF.ZC.addMouseListener(new MouseAdapter() { @Override public void mousePressed(final java.awt.event.MouseEvent evt) { if (Global.getParameter("smartboard", false)) { return; } PointLabel.getBetterName(null, true); } @Override public void mouseReleased(final java.awt.event.MouseEvent evt) { if (!Global.getParameter("smartboard", false)) { return; } PointLabel.getBetterName(null, true); } }); add(ZF.ZC); newReplay(); PointLabel=new JPointName(this); PointObject.setPointLabel(PointLabel); MacroTools.setDefaultMacros(ZF.ZC); ZF.ZC.getLocalPreferences(); // allJZFs.add(this); } public void init() { Rectangle r=new Rectangle(0, 0, pipe_tools.getWindowSize().width-themes.getLeftPanelWidth()-themes.getVerticalPanelBorderWidth()-themes.getTotalRightPanelWidth()-2*themes.getVerticalBorderWidth()-themes.getTabLeftBorderWidth()-themes.getTabRightBorderWidth(), pipe_tools.getWindowSize().height-themes.getTitleBarHeight()-themes.getMenuBarHeight()-themes.getMainTabPanelHeight()-themes.getCommentsHeight()-themes.getStatusBarHeight()); setBounds(r); ZF.ZC.setBounds(r); ZF.ZC.initRestrictDialog(); ZF.ZC.initJobCreationDialog(); ZF.ZC.init_cnt(); } public byte[] getByteArrayInputFile() { return byteinputfile; } public void createByteArrayInputFile(InputStream in) { if (byteinputfile==null) { byteinputfile=FileTools.copyToByteArray(in); } } public void setInputFile(InputStream in) { if (in!=null) { createByteArrayInputFile(in); } } public void setInputFile(byte[] in) { byteinputfile=in; } public static void getCurrentLocalPreferences() { if (getCurrentZC()!=null) { getCurrentZC().getLocalPreferences(); } } public void onTabActivate() { if (byteinputfile!=null) { FileTools.openFile("", new ByteArrayInputStream(byteinputfile), 0); byteinputfile=null; } ZF.ZC.setLocalPreferences(); PointObject.setPointLabel(PointLabel); ZF.ZC.updateDigits(); ZF.ZC.paint(ZF.ZC.getGraphics()); PaletteManager.refresh(); } public static boolean isWorkBook() { return (workbookFileName!=null); } public static String getWorkBookFileName() { return workbookFileName; } public static String getFileName(){ try{ if (isWorkBook()){ return getWorkBookFileName(); }else{ return getCurrentZF().Filename; } }catch(Exception e){ return null; } } public static void setWorkBookFileName(String s, boolean force) { if ((force)||(workbookFileName==null)) { workbookFileName=s; if (!pipe_tools.isApplet()){ pipe_tools.setTitle(Global.Loc("program.name")+" - "+Global.Loc("workbook.workbookmode")+" : "+FileName.filename(s)); pipe_tools.TabHaveChanged(false); } } } public static boolean isRestrictedSession() { return restrictedsession; } public Replay getReplay() { return Dreplay; } public void disposeReplay() { Dreplay.dispose(); } public void newReplay() { Dreplay=new Replay(null, ZF.ZC); } public JPointName getPointLabel() { return PointLabel; } public ZirkelFrame getZF() { return ZF; } public ZirkelCanvas getZC() { return ZF.ZC; } public static String ToolTip(final String s) { String ToolTipText=""; final String purename=(s.startsWith("bi_"))?s.substring(3):s; try { ToolTipText=Global.Loc("palette.info."+purename); } catch (final Exception e1) { try { ToolTipText=Global.Loc("palette.info."+s); } catch (final Exception e2) { ToolTipText=rene.gui.Global.name("iconhelp."+purename); } } return ToolTipText; } public static String FilteredStatus(final String status) { String newstatus=status; int index; if ((index=status.indexOf("@builtin@/DP_line"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_line\\E", Global.Loc("palette.info.DP_line")); } else if ((index=status.indexOf("@builtin@/DP_midpoint"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_midpoint\\E", Global.Loc("palette.info.DP_midpoint")); } else if ((index=status.indexOf("@builtin@/DP_bi_syma"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_syma\\E", Global.Loc("palette.info.DP_bi_syma")); } else if ((index=status.indexOf("@builtin@/DP_bi_symc"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_symc\\E", Global.Loc("palette.info.DP_bi_symc")); } else if ((index=status.indexOf("@builtin@/DP_plumb"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_plumb\\E", Global.Loc("palette.info.DP_plumb")); } else if ((index=status.indexOf("@builtin@/DP_bi_med"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_med\\E", Global.Loc("palette.info.DP_bi_med")); } else if ((index=status.indexOf("@builtin@/DP_bi_biss"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_biss\\E", Global.Loc("palette.info.DP_bi_biss")); } else if ((index=status.indexOf("@builtin@/DP_segment"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_segment\\E", Global.Loc("palette.info.DP_segment")); } else if ((index=status.indexOf("@builtin@/DP_ray"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_ray\\E", Global.Loc("palette.info.DP_ray")); } else if ((index=status.indexOf("@builtin@/DP_angle"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_angle\\E", Global.Loc("palette.info.DP_angle")); } else if ((index=status.indexOf("@builtin@/DP_circle"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_circle\\E", Global.Loc("palette.info.DP_circle")); } else if ((index=status.indexOf("@builtin@/DP_bi_distance"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_distance\\E", Global.Loc("palette.info.DP_bi_distance")); } else if ((index=status.indexOf("@builtin@/DP_bi_lineIP"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_lineIP\\E", Global.Loc("palette.info.DP_bi_lineIP")); } else if ((index=status.indexOf("@builtin@/DP_bi_perp_common"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_perp_common\\E", Global.Loc("palette.info.DP_bi_perp_common")); } else if ((index=status.indexOf("@builtin@/DP_bi_pinceau1"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_pinceau1\\E", Global.Loc("palette.info.DP_bi_pinceau1")); } else if ((index=status.indexOf("@builtin@/DP_bi_pinceau3"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_pinceau3\\E", Global.Loc("palette.info.DP_bi_pinceau3")); } else if ((index=status.indexOf("@builtin@/DP_bi_pinceauinter"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_pinceauinter\\E", Global.Loc("palette.info.DP_bi_pinceauinter")); } else if ((index=status.indexOf("@builtin@/DP_bi_pinceauhauteur"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_pinceauhauteur\\E", Global.Loc("palette.info.DP_bi_pinceauhauteur")); } else if ((index=status.indexOf("@builtin@/DP_bi_pinceaucycle"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_pinceaucycle\\E", Global.Loc("palette.info.DP_bi_pinceaucycle")); } else if ((index=status.indexOf("@builtin@/DP_bi_pinceaubiss"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_pinceaubiss\\E", Global.Loc("palette.info.DP_bi_pinceaubiss")); } else if ((index=status.indexOf("@builtin@/DP_bi_equidistante"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_equidistante\\E", Global.Loc("palette.info.DP_bi_equidistante")); } else if ((index=status.indexOf("@builtin@/DP_bi_horocycle"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_horocycle\\E", Global.Loc("palette.info.DP_bi_horocycle")); } else if ((index=status.indexOf("@builtin@/DP_fixedangle"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_fixedangle\\E", Global.Loc("palette.info.DP_fixedangle")); } else if ((index=status.indexOf("@builtin@/DP_bi_circ"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/DP_bi_circ\\E", Global.Loc("palette.info.DP_bi_circ")); } else if ((index=status.indexOf("@builtin@/syma"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/syma\\E", Global.Loc("palette.info.bi_syma")); } else if ((index=status.indexOf("@builtin@/symc"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/symc\\E", Global.Loc("palette.info.bi_symc")); } else if ((index=status.indexOf("@builtin@/trans"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/trans\\E", Global.Loc("palette.info.bi_trans")); } else if ((index=status.indexOf("@builtin@/med"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/med\\E", Global.Loc("palette.info.bi_med")); } else if ((index=status.indexOf("@builtin@/biss"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/biss\\E", Global.Loc("palette.info.bi_biss")); } else if ((index=status.indexOf("@builtin@/circ"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/circ\\E", Global.Loc("palette.info.bi_circ")); } else if ((index=status.indexOf("@builtin@/arc"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/arc\\E", Global.Loc("palette.info.bi_arc")); } else if ((index=status.indexOf("@builtin@/function_u"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/function_u\\E", ToolTip("bi_function_u")); } else if ((index=status.indexOf("@builtin@/t_align"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/t_align\\E", Global.Loc("palette.info.bi_t_align")); } else if ((index=status.indexOf("@builtin@/t_para"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/t_para\\E", Global.Loc("palette.info.bi_t_para")); } else if ((index=status.indexOf("@builtin@/t_perp"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/t_perp\\E", Global.Loc("palette.info.bi_t_perp")); } else if ((index=status.indexOf("@builtin@/t_equi"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/t_equi\\E", Global.Loc("palette.info.bi_t_equi")); } else if ((index=status.indexOf("@builtin@/t_app"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/t_app\\E", Global.Loc("palette.info.bi_t_app")); } else if ((index=status.indexOf("@builtin@/t_conf"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/t_conf\\E", Global.Loc("palette.info.bi_t_conf")); } else if ((index=status.indexOf("@builtin@/3Dcoords"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dcoords\\E", Global.Loc("palette.info.bi_3Dcoords")); } else if ((index=status.indexOf("@builtin@/3Dcube"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dcube\\E", Global.Loc("palette.info.bi_3Dcube")); } else if ((index=status.indexOf("@builtin@/3Darete"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Darete\\E", Global.Loc("palette.info.bi_3Darete")); } else if ((index=status.indexOf("@builtin@/3Dtetra"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dtetra\\E", Global.Loc("palette.info.bi_3Dtetra")); } else if ((index=status.indexOf("@builtin@/3Docta"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Docta\\E", Global.Loc("palette.info.bi_3Docta")); } else if ((index=status.indexOf("@builtin@/3Disoc"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Disoc\\E", Global.Loc("palette.info.bi_3Disoc")); } else if ((index=status.indexOf("@builtin@/3Ddode"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Ddode\\E", Global.Loc("palette.info.bi_3Ddode")); } else if ((index=status.indexOf("@builtin@/3Dsymp"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dsymp\\E", Global.Loc("palette.info.bi_3Dsymp")); } else if ((index=status.indexOf("@builtin@/3Dproj"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dproj\\E", Global.Loc("palette.info.bi_3Dproj")); } else if ((index=status.indexOf("@builtin@/3Dsymc"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dsymc\\E", Global.Loc("palette.info.bi_3Dsymc")); } else if ((index=status.indexOf("@builtin@/3Dtrans"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dtrans\\E", Global.Loc("palette.info.bi_3Dtrans")); } else if ((index=status.indexOf("@builtin@/3Dcircle1"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dcircle1\\E", Global.Loc("palette.info.bi_3Dcircle1")); } else if ((index=status.indexOf("@builtin@/3Dcircle2"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dcircle2\\E", Global.Loc("palette.info.bi_3Dcircle2")); } else if ((index=status.indexOf("@builtin@/3Dcircle3pts"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dcircle3pts\\E", Global.Loc("palette.info.bi_3Dcircle3pts")); } else if ((index=status.indexOf("@builtin@/3Dplandroite"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dplandroite\\E", Global.Loc("palette.info.bi_3Dplandroite")); } else if ((index=status.indexOf("@builtin@/3Dplanplan"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dplanplan\\E", Global.Loc("palette.info.bi_3Dplanplan")); } else if ((index=status.indexOf("@builtin@/3Dsphererayon"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dsphererayon\\E", Global.Loc("palette.info.bi_3Dsphererayon")); } else if ((index=status.indexOf("@builtin@/3Dspherepoint"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dspherepoint\\E", Global.Loc("palette.info.bi_3Dspherepoint")); } else if ((index=status.indexOf("@builtin@/3Dspheredroite"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dspheredroite\\E", Global.Loc("palette.info.bi_3Dspheredroite")); } else if ((index=status.indexOf("@builtin@/3Dsphereplan"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dsphereplan\\E", Global.Loc("palette.info.bi_3Dsphereplan")); } else if ((index=status.indexOf("@builtin@/3Dspheresphere"))>0) { newstatus=newstatus.substring(index); newstatus=newstatus.replaceAll("\\Q@builtin@/3Dspheresphere\\E", Global.Loc("palette.info.bi_3Dspheresphere")); } return newstatus; } public static boolean workbookHaveChanged() { boolean changed=false; for (int i=0; i