Won't your looking backward for package have the same problem if I've got
either no package definition or a package definition in a string? How about
starting at the top of the file and looking for a class definition, then
looking backward for import like usual?
> -----Original Message-----
> From: Sandip Chitale [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, May 08, 2001 2:39 PM
> To: 'Schewe, Jon (MN65)'; 'Jde List (E-mail)'
> Subject: RE: jde-import-find-and-import puts imports in wrong place
>
>
> Yup... The problem seems to be here -
>
> (defun jde-import-get-import-insertion-point ()
> (let ((ip-re
> (list (cons "import[ ]+\\(.*\\)[ ]*;" 'backward)
> ;************************* 'backward is the problem
> (cons "package[ \t]+\\(.*\\)[ \t]*;" 'backward)
> (cons "^$" 'forward)))
> :
> :-------------------8<---------- snipped ---------8<---
> :
> :
> insertion-point))
>
> In one of my programs I had to write "import" as "imp" + "ort" to beat
> the wrong insertion.
>
>
>
>
> Sandip V. Chitale 150, Almaden Blvd
> work: (408) 535 1791 ext: 791 San Jose, CA, USA
> email: [EMAIL PROTECTED] 8th floor, Cube 831
> web: http://L064-5440.blazesoft.com
>
>
> > -----Original Message-----
> > From: Schewe, Jon (MN65) [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, May 08, 2001 12:24 PM
> > To: Jde List (E-mail)
> > Subject: jde-import-find-and-import puts imports in wrong place
> >
> >
> > This isn't a real big deal since it shouldn't come up much,
> > but if you've
> > got a java class which contains a string with an import
> > statement inside it
> > jde-import-find-and-import inserts the new import after this
> > line rather
> > than after the real import lines.
> >
> > So I've got a class with this in it:
> > import javax.swing.JPanel;
> > //more imports
> > //new import should go here
> >
> > public class foo {
> > //....
> > /**
> > * Get a panel that allows debugging through DynamicJava.
> > The variable
> > * plant is mapped to the current plant.
> > */
> > final public JPanel createDynamicJavaPanel() {
> > final Interpreter interpreter = new TreeInterpreter(new
> > JavaCCParserFactory());
> > final JPanel panel = new JPanel(new BorderLayout());
> >
> > final StringBuffer message = new StringBuffer();
> > message.append("The domain package is already imported
> > and the following
> > variables have been defined: ");
> > message.append(System.getProperty("line.separator"));
> > message.append("plant");
> > message.append(System.getProperty("line.separator"));
> > message.append("scheduler");
> > message.append(System.getProperty("line.separator"));
> >
> > final JTextArea code = new JTextArea("/*" +
> > message.toString() + "*/\n",
> > 24, 80);
> > panel.add(new JScrollPane(code), BorderLayout.CENTER);
> > final JButton button = new JButton("Evaluate");
> > button.addActionListener(new ActionListener() {
> > public void actionPerformed(final ActionEvent ae) {
> > try {
> > interpreter.interpret(new StringReader(code.getText()),
> > "topLevel");
> > } catch (final InterpreterException e) {
> > System.err.println(e.getMessage());
> > e.printStackTrace();
> > }
> > }
> > });
> > panel.add(button, BorderLayout.SOUTH);
> >
> > interpreter.defineVariable("plant", getPlant());
> > interpreter.defineVariable("scheduler", getScheduler());
> >
> > try {
> > interpreter.interpret(new StringReader("import
> > com.honeywell.sydneypoc.domain.*;"), "topLevel");
> > //new import shows up here
> > } catch (final InterpreterException e) {
> > System.err.println(e.getMessage());
> > e.printStackTrace();
> > }
> >
> > return panel;
> > }
> > //...
> > }
> >
> > ---
> > Jon Schewe | [EMAIL PROTECTED]
> > *My views may not represent those of my employers
> >
> >
>