Skip to content

Commit ff5f570

Browse files
authored
I come quickly
And, behold, I come quickly; and my reward is with me, to give every man according as his work shall be. (Revelation 22:12)
1 parent 84325e2 commit ff5f570

1 file changed

Lines changed: 117 additions & 0 deletions

File tree

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
2+
// And, behold, I come quickly; and my reward is with me, to give every man according as his work shall be. (Revelation 22:12)
3+
4+
package com.javarush.task.task32.task3209;
5+
6+
import javax.swing.text.html.HTMLDocument;
7+
import javax.swing.text.html.HTMLEditorKit;
8+
import java.io.File;
9+
import java.io.StringReader;
10+
import java.io.StringWriter;
11+
12+
public class Controller {
13+
private View view;
14+
private HTMLDocument document;
15+
private File currentFile;
16+
17+
public Controller(View view) {
18+
this.view = view;
19+
}
20+
21+
public HTMLDocument getDocument() {return document;}
22+
23+
public void init() {
24+
createNewDocument();
25+
}
26+
27+
public void exit() {
28+
System.exit(0);
29+
}
30+
31+
public void setPlainText(String text) {
32+
resetDocument();
33+
StringReader stringReader = new StringReader(text);
34+
try {
35+
new HTMLEditorKit().read(stringReader, document, 0);
36+
} catch (Exception e) {
37+
ExceptionHandler.log(e);
38+
}
39+
}
40+
41+
public String getPlainText() {
42+
StringWriter stringWriter = new StringWriter();
43+
try {
44+
new HTMLEditorKit().write(stringWriter, document, 0, document.getLength());
45+
} catch (Exception e) {
46+
ExceptionHandler.log(e);
47+
}
48+
return stringWriter.toString();
49+
}
50+
51+
public void resetDocument() {
52+
if (document != null) {
53+
document.removeUndoableEditListener(view.getUndoListener());
54+
}
55+
document = (HTMLDocument) new HTMLEditorKit().createDefaultDocument();
56+
document.addUndoableEditListener(view.getUndoListener());
57+
view.update();
58+
}
59+
60+
public void createNewDocument() {
61+
view.selectHtmlTab();
62+
resetDocument();
63+
view.setTitle("HTML редактор");
64+
currentFile = null;
65+
view.resetUndo();
66+
}
67+
public void openDocument() {}
68+
public void saveDocument() {}
69+
public void saveDocumentAs() {}
70+
71+
72+
public static void main(String [] args) {
73+
View view = new View();
74+
Controller controller = new Controller(view);
75+
view.setController(controller);
76+
view.init();
77+
controller.init();
78+
}
79+
}
80+
81+
/*
82+
HTML Editor (20)
83+
84+
20.1. Реализуй метод создания нового документа createNewDocument() в контроллере. Он должен:
85+
86+
20.1.1. Выбирать html вкладку у представления.
87+
88+
20.1.2. Сбрасывать текущий документ.
89+
90+
20.1.3. Устанавливать новый заголовок окна, например: "HTML редактор". Воспользуйся методом setTitle(), который унаследован в нашем представлении.
91+
92+
20.1.4. Сбрасывать правки в Undo менеджере. Используй метод resetUndo представления.
93+
94+
20.1.5. Обнулить переменную currentFile.
95+
96+
20.2. Реализуй метод инициализации init() контроллера. Он должен просто вызывать метод создания нового документа.
97+
98+
Проверь работу пункта меню Новый.
99+
100+
101+
102+
103+
104+
Требования:
105+
106+
1. Метод createNewDocument() в контроллере должен выбирать html вкладку у представления.
107+
108+
2. Метод createNewDocument() в контроллере должен сбрасывать текущий документ.
109+
110+
3. Метод createNewDocument() в контроллере должен устанавливать новый заголовок окна.
111+
112+
4. Метод createNewDocument() в контроллере должен сбрасывать правки в Undo менеджере.
113+
114+
5. Метод createNewDocument() в контроллере должен обнулить currentFile.
115+
116+
6. Метод init() в контроллере должен вызывать метод создания нового документа.
117+
*/

0 commit comments

Comments
 (0)