Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/gjt/sp/jedit/gui/SelectLineRange.java


1   /*
2    * SelectLineRange.java - Selects a range of lines
3    * :tabSize=8:indentSize=8:noTabs=false:
4    * :folding=explicit:collapseFolds=1:
5    *
6    * Copyright (C) 1999, 2000 Slava Pestov
7    *
8    * This program is free software; you can redistribute it and/or
9    * modify it under the terms of the GNU General Public License
10   * as published by the Free Software Foundation; either version 2
11   * of the License, or any later version.
12   *
13   * This program is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   * GNU General Public License for more details.
17   *
18   * You should have received a copy of the GNU General Public License
19   * along with this program; if not, write to the Free Software
20   * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21   */
22  
23  package org.gjt.sp.jedit.gui;
24  
25  //{{{ Imports
26  import javax.swing.*;
27  import javax.swing.border.*;
28  import java.awt.*;
29  import java.awt.event.*;
30  import org.gjt.sp.jedit.textarea.*;
31  import org.gjt.sp.jedit.*;
32  //}}}
33  
34  public class SelectLineRange extends EnhancedDialog implements ActionListener
35  {
36    //{{{ SelectLineRange constructor
37    public SelectLineRange(View view)
38    {
39      super(view,jEdit.getProperty("selectlinerange.title"),true);
40      this.view = view;
41  
42      JPanel content = new JPanel(new BorderLayout());
43      content.setBorder(new EmptyBorder(12,12,12,0));
44      setContentPane(content);
45  
46      JLabel label = new JLabel(jEdit.getProperty(
47        "selectlinerange.caption"));
48      label.setBorder(new EmptyBorder(0,0,6,12));
49      content.add(BorderLayout.NORTH,label);
50  
51      JPanel panel = createFieldPanel();
52  
53      content.add(BorderLayout.CENTER,panel);
54  
55      panel = new JPanel();
56      panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
57      panel.setBorder(new EmptyBorder(6,0,0,12));
58      panel.add(Box.createGlue());
59      panel.add(Box.createGlue());
60      ok = new JButton(jEdit.getProperty("common.ok"));
61      ok.addActionListener(this);
62      getRootPane().setDefaultButton(ok);
63      panel.add(ok);
64      panel.add(Box.createHorizontalStrut(6));
65      cancel = new JButton(jEdit.getProperty("common.cancel"));
66      cancel.addActionListener(this);
67      panel.add(cancel);
68      panel.add(Box.createGlue());
69  
70      content.add(panel,BorderLayout.SOUTH);
71  
72      GUIUtilities.requestFocus(this,startField);
73  
74      pack();
75      setLocationRelativeTo(view);
76      show();
77    } //}}}
78  
79    //{{{ ok() method
80    public void ok()
81    {
82      int startLine;
83      int endLine;
84  
85      try
86      {
87        startLine = Integer.parseInt(startField.getText()) - 1;
88        endLine = Integer.parseInt(endField.getText()) - 1;
89      }
90      catch(NumberFormatException nf)
91      {
92        getToolkit().beep();
93        return;
94      }
95  
96      Buffer buffer = view.getBuffer();
97  
98      if(startLine < 0 || endLine >= buffer.getLineCount()
99        || startLine > endLine)
100     {
101       getToolkit().beep();
102       return;
103     }
104 
105     JEditTextArea textArea = view.getTextArea();
106     Selection s = new Selection.Range(
107       buffer.getLineStartOffset(startLine),
108       buffer.getLineEndOffset(endLine) - 1);
109     if(textArea.isMultipleSelectionEnabled())
110       textArea.addToSelection(s);
111     else
112       textArea.setSelection(s);
113     textArea.moveCaretPosition(buffer.getLineEndOffset(endLine) - 1);
114 
115     dispose();
116   } //}}}
117 
118   //{{{ cancel() method
119   public void cancel()
120   {
121     dispose();
122   } //}}}
123 
124   //{{{ actionPerformed() method
125   public void actionPerformed(ActionEvent evt)
126   {
127     Object source = evt.getSource();
128     if(source == ok)
129       ok();
130     else if(source == cancel)
131       cancel();
132   } //}}}
133 
134   //{{{ Private members
135 
136   //{{{ Instance variables
137   private View view;
138   private JTextField startField;
139   private JTextField endField;
140   private JButton ok;
141   private JButton cancel;
142   //}}}
143 
144   //{{{ createFieldPanel() method
145   private JPanel createFieldPanel()
146   {
147     GridBagLayout layout = new GridBagLayout();
148     JPanel panel = new JPanel(layout);
149 
150     GridBagConstraints cons = new GridBagConstraints();
151     cons.insets = new Insets(0,0,6,12);
152     cons.gridwidth = cons.gridheight = 1;
153     cons.gridx = cons.gridy = 0;
154     cons.fill = GridBagConstraints.BOTH;
155     JLabel label = new JLabel(jEdit.getProperty("selectlinerange.start"),
156       SwingConstants.RIGHT);
157     layout.setConstraints(label,cons);
158     panel.add(label);
159 
160     startField = new JTextField(10);
161     cons.gridx = 1;
162     cons.weightx = 1.0f;
163     layout.setConstraints(startField,cons);
164     panel.add(startField);
165 
166     label = new JLabel(jEdit.getProperty("selectlinerange.end"),
167       SwingConstants.RIGHT);
168     cons.gridx = 0;
169     cons.weightx = 0.0f;
170     cons.gridy = 1;
171     layout.setConstraints(label,cons);
172     panel.add(label);
173 
174     endField = new JTextField(10);
175     cons.gridx = 1;
176     cons.weightx = 1.0f;
177     layout.setConstraints(endField,cons);
178     panel.add(endField);
179 
180     return panel;
181   } //}}}
182 
183   //}}}
184 }