public static boolean open(JTextComponent textComponent)
            throws TextComponentUtilException {
        InputStream is = null;
        BufferedReader reader = null;
        try {
            NamedInputStream selectedInputStream = FileChooserFactory
                    .getFileChooser().open();
            if (selectedInputStream != null) {
                is = selectedInputStream.getInputStream();
                textComponent.setText(EMPTY);

                reader = new BufferedReader(new InputStreamReader(is));
                String line;
                Document document = textComponent.getDocument();
                while ((line = reader.readLine()) != null) {
                    document.insertString(document.getLength(), line
                            + Commons.getLineSeparator(), null);
                }
                if (!textComponent.hasFocus()) {
                    textComponent.requestFocus();
                }
                return true;
            } else {
                return false;
            }
        } catch (Exception e) {
            throw new TextComponentUtilException(e.getMessage());
        } finally {
            if (is != null) {
                try {
                    is.close();
                } catch (Exception e) {
                    logger.log(Level.WARNING, "Failed closing input stream: "
                            + e.getMessage(), e);
                }
            }
            if (reader != null) {
                try {
                    reader.close();
                } catch (Exception e) {
                    logger.log(Level.WARNING, "Failed closing reader: "
                            + e.getMessage(), e);
                }
            }
        }
    }