You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

JavaOtherOptionsPanel.java 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /********************************************************************
  2. * Copyright (c) 2007 Contributors. All rights reserved.
  3. * This program and the accompanying materials are made available
  4. * under the terms of the Eclipse Public License v 2.0
  5. * which accompanies this distribution and is available at
  6. * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
  7. *
  8. * Contributors: IBM Corporation - initial API and implementation
  9. * Helen Hawkins - initial version (bug 148190)
  10. *******************************************************************/
  11. package org.aspectj.ajde.ui.javaoptions;
  12. import java.awt.BorderLayout;
  13. import java.awt.Color;
  14. import java.awt.Dimension;
  15. import java.io.IOException;
  16. import javax.swing.BorderFactory;
  17. import javax.swing.Box;
  18. import javax.swing.JLabel;
  19. import javax.swing.JPanel;
  20. import javax.swing.JTextField;
  21. import javax.swing.border.Border;
  22. import javax.swing.border.TitledBorder;
  23. import org.aspectj.ajde.core.JavaOptions;
  24. import org.aspectj.ajde.ui.swing.OptionsPanel;
  25. /**
  26. * An options panel which displays the character encoding java
  27. * compiler option. Users should add this to the Ajde.getOptionsFrame()
  28. */
  29. public class JavaOtherOptionsPanel extends OptionsPanel {
  30. private static final long serialVersionUID = 4491319302490183151L;
  31. private JPanel parentPanel;
  32. private Border otherEtchedBorder;
  33. private TitledBorder otherTitleBorder;
  34. private Border otherCompoundBorder;
  35. private JPanel otherPanel;
  36. private Box otherBox = Box.createVerticalBox();
  37. private JavaBuildOptions javaBuildOptions;
  38. private JTextField characterEncoding;
  39. public JavaOtherOptionsPanel(JavaBuildOptions javaBuildOptions) {
  40. this.javaBuildOptions = javaBuildOptions;
  41. try {
  42. jbInit();
  43. this.setName("Java Other Build Options");
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. }
  47. }
  48. public void loadOptions() throws IOException {
  49. createOtherContents();
  50. }
  51. public void saveOptions() throws IOException {
  52. String text = characterEncoding.getText();
  53. if (text != null ) {
  54. javaBuildOptions.setCharacterEncoding(text);
  55. }
  56. }
  57. private void jbInit() throws Exception {
  58. this.setLayout(new BorderLayout());
  59. createBorders();
  60. addBordersToPanel();
  61. this.add(parentPanel,BorderLayout.NORTH);
  62. }
  63. private void createOtherContents() {
  64. JPanel panel = new JPanel();
  65. panel.setLayout(new BorderLayout());
  66. JLabel label = new JLabel();
  67. label.setFont(new java.awt.Font("Dialog", 0, 11));
  68. label.setText("Character encoding (will default to platform encoding)");
  69. panel.add(label,BorderLayout.WEST);
  70. characterEncoding = new JTextField();
  71. characterEncoding.setFont(new java.awt.Font("SansSerif", 0, 11));
  72. characterEncoding.setMinimumSize(new Dimension(100, 21));
  73. characterEncoding.setPreferredSize(new Dimension(150, 21));
  74. panel.add(characterEncoding,BorderLayout.EAST);
  75. String option = (String) javaBuildOptions.getJavaBuildOptionsMap().get(
  76. JavaOptions.CHARACTER_ENCODING);
  77. if (option != null) {
  78. characterEncoding.setText(option);
  79. }
  80. otherBox.add(panel,null);
  81. otherPanel.add(otherBox);
  82. }
  83. private void createBorders() {
  84. otherEtchedBorder = BorderFactory.createEtchedBorder(Color.white, new Color(156, 156, 158));
  85. otherTitleBorder = new TitledBorder(otherEtchedBorder, "Other Options");
  86. otherCompoundBorder = BorderFactory.createCompoundBorder(otherTitleBorder,
  87. BorderFactory.createEmptyBorder(5, 5, 5, 5));
  88. otherTitleBorder.setTitleFont(new java.awt.Font("Dialog", 0, 11));
  89. }
  90. private void addBordersToPanel() {
  91. parentPanel = new JPanel();
  92. parentPanel.setLayout(new BorderLayout());
  93. otherPanel = new JPanel();
  94. otherPanel.setBorder(otherCompoundBorder);
  95. parentPanel.add(otherPanel,BorderLayout.CENTER);
  96. }
  97. }