
org.hjug.dtangler.swingui.mainview.impl.MainViewPresenter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dtangler-swingui Show documentation
Show all versions of dtangler-swingui Show documentation
Directly usable user interface
The newest version!
//This product is provided under the terms of EPL (Eclipse Public License)
//version 2.0.
//
//The full license text can be read from: https://www.eclipse.org/legal/epl-2.0/
package org.hjug.dtangler.swingui.mainview.impl;
import java.io.File;
import java.util.List;
import org.hjug.dtangler.core.dependencies.Dependencies;
public class MainViewPresenter implements FileListDropListener {
private final MainViewModel model;
private final MainView view;
MainViewPresenter(MainViewModel model, MainView view) {
this.model = model;
this.view = view;
view.setFileName(model.getFileName());
view.addFileListDropListener(this);
}
public void onDsmGuiModelChanged() {
view.setSelectionViolations(model.getSelectionViolations());
}
public void onEditInput() {
model.selectNewInput();
updateView();
}
public void onRefresh() {
model.refresh();
updateView();
}
public void onEditRules() {
model.editRules();
updateView();
}
public void onAddForbiddenDeps() {
model.addForbiddenDeps();
updateView();
}
public boolean canAddForbiddenDeps() {
return model.cellSelectionExists();
}
public void onOpen() {
model.openConfiguration();
updateView();
}
public void onSave() {
model.save();
updateView();
}
public void onSaveAs() {
model.saveAs();
updateView();
}
public void onNew() {
model.newConfiguration();
updateView();
}
private void updateView() {
StringBuilder sb = new StringBuilder();
if (model.isDirty())
sb.append("* ");
sb.append(model.getFileName());
view.setFileName(sb.toString());
view.setScopes(model.getScopes());
view.setScope(model.getScope());
view.setAllViolations(model.getAllViolations());
}
public void onChangeScope() {
model.setScope(view.getSelectedScope());
updateView();
}
public boolean canZoomIn() {
return model.selectionExists() && model.deeperLevelExists();
}
public boolean canZoomOut() {
return model.higherLevelExists();
}
public void onZoomIn() {
model.zoomIn();
updateView();
}
public void onZoomIn(Dependencies.DependencyFilter dependencyFilter) {
model.zoomIn(dependencyFilter);
updateView();
}
public void onZoomOut() {
model.zoomOut();
updateView();
}
public boolean canExit() {
return model.canExit();
}
public void onToggleShortName() {
model.toggleShortName();
view.setShortNameEnabled(model.isShortNameEnabled());
}
public void fileListDropped(List files) {
if (files.size() == 1 && files.get(0).isFile()
&& files.get(0).getName().toLowerCase().endsWith(".properties"))
model.openConfiguration(files.get(0));
else
model.addLocations(files);
updateView();
}
}