![JAR search and dependency download from the Maven repository](/logo.png)
org.devocative.devolcano.MergeCode Maven / Gradle / Ivy
package org.devocative.devolcano;
import org.apache.commons.io.FileUtils;
import org.jmeld.ui.JMeldPanel;
import org.jmeld.ui.util.LookAndFeelManager;
import org.jmeld.util.prefs.WindowPreference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.swing.*;
import java.io.File;
import java.nio.charset.Charset;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class MergeCode implements Runnable {
private static final Logger logger = LoggerFactory.getLogger(MergeCode.class);
private static final String DIFF_RESOLVE_FILE = "/dlava/diffResolve.txt";
public static void main(String[] args) throws Exception {
merge(new File(args[0]));
}
public static void merge(File baseDir) throws Exception {
File file = new File(baseDir.getCanonicalPath() + DIFF_RESOLVE_FILE);
int retry = 1;
while (retry < 4) {
if (file.exists()) {
break;
} else {
file = new File(baseDir.getParentFile().getCanonicalPath() + DIFF_RESOLVE_FILE);
retry++;
}
}
if (!file.exists()) {
throw new RuntimeException("Diff Resolve file not exist: " + DIFF_RESOLVE_FILE);
}
logger.info("Diff Resolve file: {}", file.getCanonicalPath());
List mergeItems = FileUtils.readLines(file, Charset.forName("UTF-8"));
Map files = new LinkedHashMap<>();
for (String mergeItem : mergeItems) {
String[] split = mergeItem.split("[|]");
String current = split[0];
String generated = split[1];
logger.info("Main={} | Generated={}", current, generated);
files.put(current, generated);
}
if (!files.isEmpty()) {
SwingUtilities.invokeLater(new MergeCode(files));
logger.info("Merge Finished!");
} else {
logger.info("No file for merge!");
}
}
private Map files;
private MergeCode(Map files) {
this.files = files;
}
@Override
public void run() {
LookAndFeelManager.getInstance().install();
JMeldPanel jmeldPanel = new JMeldPanel();
jmeldPanel.SHOW_TOOLBAR_OPTION.disable();
JFrame frame = new JFrame("JMeld");
frame.add(jmeldPanel);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
new WindowPreference(frame.getTitle(), frame);
frame.addWindowListener(jmeldPanel.getWindowListener());
frame.setVisible(true);
frame.toFront();
for (Map.Entry entry : files.entrySet()) {
jmeldPanel.openComparison(entry.getKey(), entry.getValue());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy