6 package de.uni_hamburg.corpora.swing;
9 import java.util.ArrayList;
10 import javax.swing.JTextPane;
11 import javax.swing.text.DefaultStyledDocument;
12 import javax.swing.text.SimpleAttributeSet;
13 import javax.swing.text.StyleConstants;
14 import javax.swing.text.StyledDocument;
34 this.mainPage = mainPage;
35 String firstVersion = mainPage.instance.
exbStrings.get(mainPage.transcriptName);
36 String secondVersion = mainPage.instance.
exbStringsTwo.get(mainPage.transcriptName);
39 StyledDocument doc =
new DefaultStyledDocument();
40 StyledDocument secondDoc =
new DefaultStyledDocument();
41 firstPane.setDocument(doc);
42 secondPane.setDocument(secondDoc);
43 firstPane.setText(firstVersion);
44 secondPane.setText(secondVersion);
45 SimpleAttributeSet
set =
new SimpleAttributeSet();
46 StyleConstants.setBackground(
set,
new Color(255, 255, 0));
48 String[] firstLines = firstVersion.split(
"\n");
49 String[] firstDifLines = dif[0].split(
"\n");
50 String[] secondLines = secondVersion.split(
"\n");
51 String[] secondDifLines = dif[1].split(
"\n");
54 for (
int i = 0; i < dif[0].length(); i++) {
55 if (dif[0].charAt(i) ==
'\n') {
58 }
else if (dif[0].charAt(i) !=
' ' && dif[0].charAt(i) !=
'"' 59 && dif[0].charAt(i) !=
'/' && dif[0].charAt(i) !=
'>') {
60 difPart += Character.toString(dif[0].charAt(i));
61 }
else if (difPart !=
"") {
62 int offsetLine = firstVersion.indexOf(firstLines[lineCounter]) + lineOffset;
63 int offset = firstVersion.indexOf(difPart, offsetLine - 1);
67 doc.setCharacterAttributes(offset, difPart.length(),
set,
true);
76 for (
int i = 0; i < dif[1].length(); i++) {
77 if (dif[1].charAt(i) ==
'\n') {
80 }
else if (dif[1].charAt(i) !=
' ' && dif[1].charAt(i) !=
'"' 81 && dif[1].charAt(i) !=
'/' && dif[1].charAt(i) !=
'>') {
82 difPart += Character.toString(dif[1].charAt(i));
83 }
else if (difPart !=
"") {
84 int offsetLine = secondVersion.indexOf(secondLines[lineCounter]) + lineOffset;
85 int offset = secondVersion.indexOf(difPart, offsetLine - 1);
86 secondDoc.setCharacterAttributes(offset, difPart.length(),
set,
true);
99 @SuppressWarnings(
"unchecked")
101 private void initComponents() {
103 jPanel1 =
new javax.swing.JPanel();
104 jLabel1 =
new javax.swing.JLabel();
105 jPanel2 =
new javax.swing.JPanel();
106 jScrollPane1 =
new javax.swing.JScrollPane();
107 firstPane =
new javax.swing.JTextPane();
108 jPanel3 =
new javax.swing.JPanel();
109 jScrollPane2 =
new javax.swing.JScrollPane();
110 secondPane =
new javax.swing.JTextPane();
111 backButton =
new javax.swing.JButton();
113 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
115 jLabel1.setFont(
new java.awt.Font(
"SansSerif", 1, 24));
116 jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
117 jLabel1.setText(
"Different Lines Between the Two Versions");
119 javax.swing.GroupLayout jPanel1Layout =
new javax.swing.GroupLayout(jPanel1);
120 jPanel1.setLayout(jPanel1Layout);
121 jPanel1Layout.setHorizontalGroup(
122 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
123 .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
125 jPanel1Layout.setVerticalGroup(
126 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
127 .addGroup(jPanel1Layout.createSequentialGroup()
128 .addComponent(jLabel1)
129 .addGap(0, 0, Short.MAX_VALUE))
132 jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"First Version ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font(
"SansSerif", 1, 14)));
134 jScrollPane1.setViewportView(firstPane);
136 javax.swing.GroupLayout jPanel2Layout =
new javax.swing.GroupLayout(jPanel2);
137 jPanel2.setLayout(jPanel2Layout);
138 jPanel2Layout.setHorizontalGroup(
139 jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
140 .addGroup(jPanel2Layout.createSequentialGroup()
142 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 418, Short.MAX_VALUE)
145 jPanel2Layout.setVerticalGroup(
146 jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
147 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 370, Short.MAX_VALUE)
150 jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"Second Version", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION,
new java.awt.Font(
"SansSerif", 1, 14)));
152 jScrollPane2.setViewportView(secondPane);
154 javax.swing.GroupLayout jPanel3Layout =
new javax.swing.GroupLayout(jPanel3);
155 jPanel3.setLayout(jPanel3Layout);
156 jPanel3Layout.setHorizontalGroup(
157 jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
158 .addGroup(jPanel3Layout.createSequentialGroup()
160 .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 424, Short.MAX_VALUE)
163 jPanel3Layout.setVerticalGroup(
164 jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
165 .addComponent(jScrollPane2)
168 backButton.setText(
"Back");
169 backButton.addActionListener(
new java.awt.event.ActionListener() {
170 public void actionPerformed(java.awt.event.ActionEvent evt) {
171 backButtonActionPerformed(evt);
175 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(getContentPane());
176 getContentPane().setLayout(layout);
177 layout.setHorizontalGroup(
178 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
179 .addGroup(layout.createSequentialGroup()
181 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
182 .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
183 .addGroup(layout.createSequentialGroup()
184 .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
185 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
186 .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
187 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
188 .addGap(0, 0, Short.MAX_VALUE)
189 .addComponent(backButton, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)))
192 layout.setVerticalGroup(
193 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
194 .addGroup(layout.createSequentialGroup()
196 .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
197 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
198 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
199 .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
200 .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
201 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
202 .addComponent(backButton)
209 private void backButtonActionPerformed(java.awt.event.ActionEvent evt) {
211 mainPage.setVisible(
true);
217 public static void main(String args[]) {
224 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
225 if (
"Nimbus".equals(info.getName())) {
226 javax.swing.UIManager.setLookAndFeel(info.getClassName());
230 }
catch (ClassNotFoundException ex) {
231 java.util.logging.Logger.getLogger(
MergeFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
232 }
catch (InstantiationException ex) {
233 java.util.logging.Logger.getLogger(
MergeFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
234 }
catch (IllegalAccessException ex) {
235 java.util.logging.Logger.getLogger(
MergeFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
236 }
catch (javax.swing.UnsupportedLookAndFeelException ex) {
237 java.util.logging.Logger.getLogger(
MergeFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
242 java.awt.EventQueue.invokeLater(
new Runnable() {
250 private javax.swing.JButton backButton;
251 private javax.swing.JTextPane firstPane;
252 private javax.swing.JLabel jLabel1;
253 private javax.swing.JPanel jPanel1;
254 private javax.swing.JPanel jPanel2;
255 private javax.swing.JPanel jPanel3;
256 private javax.swing.JScrollPane jScrollPane1;
257 private javax.swing.JScrollPane jScrollPane2;
258 private javax.swing.JTextPane secondPane;
MergeFrame(ExbMergerGUI mainPage)
HashMap< String, String > exbStrings
String[] compareTwoExbs(String firstExb, String secondExb)
HashMap< String, String > exbStringsTwo
static void main(String args[])