ListTableModel () { ColumnInfo local = new ElementsColumnInfoBase<PathMappingSettings.PathMapping>(ExecutionBundle.message("path.mapping.column.path.local")) { @Override public @NlsSafe String valueOf(PathMappingSettings.PathMapping pathMapping) { return pathMapping.getLocalRoot(); } @Override public boolean isCellEditable(PathMappingSettings.PathMapping pathMapping) { return canDeleteElement(pathMapping); } @Override public void setValue(PathMappingSettings.PathMapping pathMapping, String s) { if (s.equals(valueOf(pathMapping))) { return; } pathMapping.setLocalRoot(s); setModified(); } @Override protected String getDescription(PathMappingSettings.PathMapping pathMapping) { return valueOf(pathMapping); } }; ColumnInfo remote = new ElementsColumnInfoBase<PathMappingSettings.PathMapping>(ExecutionBundle.message("path.mapping.column.path.remote")) { @Override public @NlsSafe String valueOf(PathMappingSettings.PathMapping pathMapping) { return pathMapping.getRemoteRoot(); } @Override public boolean isCellEditable(PathMappingSettings.PathMapping pathMapping) { return canDeleteElement(pathMapping); } @Override public void setValue(PathMappingSettings.PathMapping pathMapping, String s) { if (s.equals(valueOf(pathMapping))) { return; } pathMapping.setRemoteRoot(s); setModified(); } @Override protected String getDescription(PathMappingSettings.PathMapping pathMapping) { return valueOf(pathMapping); } }; return new ListTableModel(local, remote); }