Implementing additional features

For better usability, you can add a few additional features for text input and error handling. The file manager in this application uses a text input system during the rename operation.

InputScreen

The InputScreen class is an additional class for text input. It is launched from the FileSelector class in situations where a new folder is created or a file renamed.

The InputScreen class contains a TextField and standard OK / CANCEL Commands. The entered text is returned to the FileSelector as the new file or folder name.

To implement InputScreen class:

  1. Create the InputScreen.java class file.

  2. Import the required packages and classes.

    import javax.microedition.lcdui.*;
  3. Set InputScreen to extend Form and implement CommandListener. Create the Commands and other variables.

    class InputScreen extends Form implements CommandListener {
    
        private final ImageViewerMIDlet midlet;
        private final TextField inputField =
                new TextField("Input", "", 32, TextField.ANY);
        private final Command okCommand =
                new Command("OK", Command.OK, 1);
        private final Command cancelCommand =
                new Command("Cancel", Command.OK, 1);
  4. Make the InputScreen available in the MIDlet main view.

        InputScreen(ImageViewerMIDlet midlet) {
            super("Input");
            this.midlet = midlet;
            append(inputField);
            addCommand(okCommand);
            addCommand(cancelCommand);
            setCommandListener(this);
        }
  5. Create methods for setting up the TextField and to read the text String.

        public void setQuestion(String question, String text) {
            inputField.setLabel(question);
            inputField.setString(text);
        }
    
        public String getInputText() {
            return inputField.getString();
        }
  6. Implement the commandAction method.

        public void commandAction(Command command, Displayable d) {
            if (command == okCommand) {
                midlet.input(inputField.getString());
            } else if (command == cancelCommand) {
                midlet.cancelInput();
            }
        }
    }

ErrorScreen

The ErrorScreen class creates an Alert of type ERROR, which is shown in situations where the MIDlet cannot, for example, access a certain directory. The exact message String is entered in the showError method.

To implement the ErrorScreen class:

  1. Create the ErrorScreen.java class file.

  2. Import the required packages and classes.

    import javax.microedition.lcdui.*;
  3. Set ErrorScreen to extend Alert. Create the required variables.

    class ErrorScreen
            extends Alert {
    
        private static Image image;
        private static Display display;
        private static ErrorScreen instance = null;
  4. Define the Alert properties and create a method for displaying it.

        private ErrorScreen() {
            super("Error");
            setType(AlertType.ERROR);
            setTimeout(5000);
            setImage(image);
        }
    
        static void init(Image img, Display disp) {
            image = img;
            display = disp;
        }
    
        static void showError(String message, Displayable next) {
            if (instance == null) {
                instance = new ErrorScreen();
            }
            instance.setTitle("Error");
            instance.setString(message);
            display.setCurrent(instance, next);
        }
    }