Есть какие-то идеи?
package com.javarush.task.task32.task3209;
import com.javarush.task.task32.task3209.listeners.FrameListener;
import com.javarush.task.task32.task3209.listeners.TabbedPaneChangeListener;
import com.javarush.task.task32.task3209.listeners.UndoListener;
import com.javarush.task.task32.task3209.listeners.UndoMenuListener;
import javax.swing.*;
import javax.swing.undo.UndoManager;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class View extends JFrame implements ActionListener {
private UndoManager undoManager = new UndoManager();
private UndoListener undoListener = new UndoListener(undoManager);
private Controller controller;
public UndoListener getUndoListener() {
return undoListener;
}
public Controller getController() {
return controller;
}
public void setController(Controller controller) {
this.controller = controller;
}
@Override
public void actionPerformed(ActionEvent actionEvent) {
}
public void init(){
addWindowListener(new FrameListener(this));
initGui();
setVisible(true);
}
public void exit(){
controller.exit();
}
private JTabbedPane tabbedPane = new JTabbedPane();
private JTextPane htmlTextPane = new JTextPane();
private JEditorPane plainTextPane = new JEditorPane();
public void initMenuBar(){
JMenuBar jMenuBar = new JMenuBar();
MenuHelper.initFileMenu(this, jMenuBar);
MenuHelper.initEditMenu(this, jMenuBar);
MenuHelper.initStyleMenu(this, jMenuBar);
MenuHelper.initAlignMenu(this, jMenuBar);
MenuHelper.initColorMenu(this, jMenuBar);
MenuHelper.initFontMenu(this, jMenuBar);
MenuHelper.initHelpMenu(this, jMenuBar);
getContentPane().add(jMenuBar, BorderLayout.NORTH);
}
public View(){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e){
ExceptionHandler.log(e);
}
}
public void initEditor(){
htmlTextPane.setContentType("text/html");
JScrollPane jScrollPaneLocal = new JScrollPane(htmlTextPane);
tabbedPane.add("HTML", jScrollPaneLocal);
JScrollPane jScrollPane1Local1 = new JScrollPane(plainTextPane);
tabbedPane.add("Текст", jScrollPane1Local1);
tabbedPane.setPreferredSize(new Dimension(500,500));
TabbedPaneChangeListener tabbedPaneChangeListener = new TabbedPaneChangeListener(this);
tabbedPane.addChangeListener(tabbedPaneChangeListener);
getContentPane().add(tabbedPane, BorderLayout.CENTER);
}
public void selectedTabChanged(){
}
public void initGui(){
initMenuBar();
initEditor();
pack();
}
public boolean canUndo(){
return undoManager.canUndo();
}
public boolean canRedo(){
return undoManager.canRedo();
}
public void undo(){
try{
undoManager.undo();
}
catch (Exception e){
ExceptionHandler.log(e);
}
}
public void redo(){
try{
undoManager.redo();
}
catch (Exception e){
ExceptionHandler.log(e);
}
}
public void resetUndo(){
undoManager.discardAllEdits();
}
public boolean isHtmlTabSelected(){
return tabbedPane.getSelectedIndex() == 0;
}
public void selectHtmlTab(){
tabbedPane.setSelectedIndex(0);
resetUndo();
}
public void update(){
htmlTextPane.setDocument(controller.getDocument());
}
public void showAbout(){
JOptionPane.showMessageDialog(tabbedPane.getSelectedComponent(),
"Версия 1.0",
"О программме",
JOptionPane.INFORMATION_MESSAGE);
}
}