Re-add graph exporting, add graph label

master
skylarmt 9 years ago
parent 6830fdd587
commit 25f601b278

@ -157,6 +157,7 @@ public class Functions {
public void plotname(String t) {
graphwin.setWindowTitle(t);
graphwin.setLabel(t);
}
public String plotname() {

@ -139,6 +139,9 @@
</Events>
</Component>
<Component class="org.math.plot.Plot2DPanel" name="plot">
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="plotMouseClicked"/>
</Events>
</Component>
</SubComponents>
</Form>

@ -29,11 +29,14 @@ package net.apocalypselabs.symat;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import static java.lang.Math.abs;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
@ -41,6 +44,7 @@ import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import org.math.plot.plotObjects.BaseLabel;
import org.matheclipse.core.eval.EvalUtilities;
import org.matheclipse.parser.client.math.MathException;
@ -55,6 +59,8 @@ public class Graph extends javax.swing.JInternalFrame {
private boolean standalone = true;
private boolean customName = false;
private BaseLabel lbl = new BaseLabel("", Color.black, 0.5, 1.1);
// History, used for redrawing when scale changed.
private String history = "";
@ -87,6 +93,8 @@ public class Graph extends javax.swing.JInternalFrame {
plot.plotToolBar.remove(5);
plot.plotToolBar.remove(4);
plot.plotToolBar.remove(3);
lbl.setFont(new Font("Courier", Font.BOLD, 18));
plot.addPlotable(lbl);
}
@Override
@ -153,6 +161,12 @@ public class Graph extends javax.swing.JInternalFrame {
}
});
plot.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
plotMouseClicked(evt);
}
});
jMenu1.setText("File");
exportBtn.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
@ -264,8 +278,8 @@ public class Graph extends javax.swing.JInternalFrame {
cr.setVar("x", x);
String res = solver.evaluate("$x=" + x + ";N[" + formula + "]").toString();
//if (Double.parseDouble(res) >= ymin && Double.parseDouble(res) <= ymax) {
yy += res + " ";
xx += String.valueOf(x) + " ";
yy += res + " ";
xx += String.valueOf(x) + " ";
//}
} catch (MathException | NumberFormatException ex) {
@ -362,7 +376,18 @@ public class Graph extends javax.swing.JInternalFrame {
}//GEN-LAST:event_clrGraphBtnActionPerformed
private void exportBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_exportBtnActionPerformed
int result = fc.showSaveDialog(MainGUI.mainPane);
if (result == JFileChooser.APPROVE_OPTION) {
File file = new File(addSaveExt(fc.getSelectedFile().toString()));
try {
plot.toGraphicFile(file);
} catch (IOException ex) {
JOptionPane.showInternalMessageDialog(this,
"Image export failed!",
"Error",
JOptionPane.ERROR_MESSAGE);
}
}
}//GEN-LAST:event_exportBtnActionPerformed
private void setTitleBtnActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_setTitleBtnActionPerformed
@ -372,9 +397,14 @@ public class Graph extends javax.swing.JInternalFrame {
JOptionPane.QUESTION_MESSAGE);
if (wintitle != null && !wintitle.equals("")) {
setWindowTitle(wintitle);
setLabel(wintitle);
}
}//GEN-LAST:event_setTitleBtnActionPerformed
private void plotMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_plotMouseClicked
}//GEN-LAST:event_plotMouseClicked
/**
* Get the range of the graph.
*
@ -390,6 +420,7 @@ public class Graph extends javax.swing.JInternalFrame {
xmax = max;
clearDraw(false);
plot.setFixedBounds(0, min, max);
if (!history.trim().equals("")) {
String temp = "";
for (String cmd : history.trim().split("\n")) {
@ -415,6 +446,10 @@ public class Graph extends javax.swing.JInternalFrame {
plotBtnActionPerformed(null);
}
public void setLabel(String label) {
lbl.setText(label);
}
private String addSaveExt(String path) {
if (!path.matches(".*\\.(png)")) {
path += ".png";

Loading…
Cancel
Save