All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hjug.dtangler.swingui.mainview.impl.MainViewPresenter Maven / Gradle / Ivy

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();

	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy