use of gen.core.filters.Files in project omegat by omegat-org.
the class FilterEditor method editButtonActionPerformed.
// GEN-LAST:event_addButtonActionPerformed
private void editButtonActionPerformed(java.awt.event.ActionEvent evt) {
// GEN-FIRST:event_editButtonActionPerformed
int row = instances.getSelectedRow();
IFilter f = FilterMaster.getFilterInstance(filter.getClassName());
if (f == null) {
return;
}
InstanceEditor ie = new InstanceEditor(this, f.isSourceEncodingVariable(), f.isTargetEncodingVariable(), f.getHint(), instances.getModel().getValueAt(row, 0).toString(), instances.getModel().getValueAt(row, 1).toString(), instances.getModel().getValueAt(row, 2).toString(), instances.getModel().getValueAt(row, 3).toString());
ie.setVisible(true);
if (ie.getReturnStatus() == InstanceEditor.RET_OK) {
Files ff = new Files();
ff.setSourceEncoding(setEncodingName(ie.getSourceEncoding()));
ff.setSourceFilenameMask(ie.getSourceFilenameMask());
ff.setTargetEncoding(setEncodingName(ie.getTargetEncoding()));
ff.setTargetFilenamePattern(ie.getTargetFilenamePattern());
filter.getFiles().set(row, ff);
instances.setModel(new OneFilterTableModel(filter));
}
}
use of gen.core.filters.Files in project omegat by omegat-org.
the class FilterEditor method addButtonActionPerformed.
// GEN-LAST:event_toDefaultsButtonActionPerformed
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
// GEN-FIRST:event_addButtonActionPerformed
IFilter f = FilterMaster.getFilterInstance(filter.getClassName());
if (f == null) {
return;
}
InstanceEditor ie = new InstanceEditor(this, f.isSourceEncodingVariable(), f.isTargetEncodingVariable(), f.getHint());
ie.setVisible(true);
if (ie.getReturnStatus() == InstanceEditor.RET_OK) {
Files ff = new Files();
ff.setSourceEncoding(setEncodingName(ie.getSourceEncoding()));
ff.setSourceFilenameMask(ie.getSourceFilenameMask());
ff.setTargetEncoding(setEncodingName(ie.getTargetEncoding()));
ff.setTargetFilenamePattern(ie.getTargetFilenamePattern());
filter.getFiles().add(ff);
instances.setModel(new OneFilterTableModel(filter));
}
}
use of gen.core.filters.Files in project omegat by omegat-org.
the class FiltersTest method testFiltersComparison.
@Test
public void testFiltersComparison() {
Filters orig = FilterMaster.createDefaultFiltersConfig();
Filters clone = FilterMaster.createDefaultFiltersConfig();
assertNotSame(orig, clone);
// Filters does not itself implement equals() with the semantics we want
assertNotEquals(orig, clone);
// Use external implementation instead
assertTrue(FiltersUtil.filtersEqual(orig, clone));
// Shallow change
clone.setIgnoreFileContext(!clone.isIgnoreFileContext());
assertFalse(FiltersUtil.filtersEqual(orig, clone));
// Deep change
clone = FilterMaster.createDefaultFiltersConfig();
Files file = clone.getFilters().get(0).getFiles().get(0);
file.setTargetEncoding(file.getTargetEncoding() + "foo");
assertFalse(FiltersUtil.filtersEqual(orig, clone));
}
use of gen.core.filters.Files in project omegat by omegat-org.
the class Convert20to21 method convertFiltersConfig.
/**
* Convert filters config ('filters.conf') into new format.
*
* @param fromFile
* old config file
* @param toFile
* new config file
* @throws Exception
*/
public static void convertFiltersConfig(final File fromFile, final File toFile) throws Exception {
if (!fromFile.exists()) {
return;
}
String c = read(fromFile);
org.omegat.convert.v20to21.data.Filters filters;
XMLDecoder xmldec = new XMLDecoder(new ByteArrayInputStream(c.getBytes("UTF-8")));
try {
filters = (org.omegat.convert.v20to21.data.Filters) xmldec.readObject();
} finally {
xmldec.close();
}
Filters res = new Filters();
for (org.omegat.convert.v20to21.data.OneFilter f : filters.getFilter()) {
Filter fo = new Filter();
res.getFilters().add(fo);
fo.setClassName(f.getClassName());
fo.setEnabled(f.isOn());
for (org.omegat.convert.v20to21.data.Instance i : f.getInstance()) {
Files io = new Files();
fo.getFiles().add(io);
io.setSourceFilenameMask(i.getSourceFilenameMask());
io.setTargetFilenamePattern(i.getTargetFilenamePattern());
io.setSourceEncoding(i.getSourceEncoding());
io.setTargetEncoding(i.getTargetEncoding());
}
Serializable opts = f.getOptions();
if (opts != null) {
BeanInfo bi = Introspector.getBeanInfo(opts.getClass());
for (PropertyDescriptor prop : bi.getPropertyDescriptors()) {
if ("class".equals(prop.getName())) {
continue;
}
Object value = prop.getReadMethod().invoke(opts);
Filter.Option op = new Filter.Option();
op.setName(prop.getName());
op.setValue(value.toString());
fo.getOption().add(op);
}
}
}
convertTextFilter(res);
convertHTMLFilter2(res);
JAXBContext ctx = JAXBContext.newInstance(Filters.class);
Marshaller m = ctx.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
m.marshal(res, toFile);
}
use of gen.core.filters.Files in project omegat by omegat-org.
the class FilterMaster method getDefaultSettingsFromFilter.
/**
* Create default filter's config.
*
* @param filterClassname
* filter's classname
* @return default filter's config
*/
public static Filter getDefaultSettingsFromFilter(final String filterClassname) {
IFilter f = getFilterInstance(filterClassname);
if (f == null) {
return null;
}
Filter fc = new Filter();
fc.setClassName(f.getClass().getName());
fc.setEnabled(true);
for (Instance ins : f.getDefaultInstances()) {
Files ff = new Files();
ff.setSourceEncoding(ins.getSourceEncoding());
ff.setSourceFilenameMask(ins.getSourceFilenameMask());
ff.setTargetEncoding(ins.getTargetEncoding());
ff.setTargetFilenamePattern(ins.getTargetFilenamePattern());
fc.getFiles().add(ff);
}
return fc;
}
Aggregations