package com.frinika.sequencer.gui.pianoroll;
import com.frinika.project.ProjectContainer;
import com.frinika.project.gui.ProjectFrame;
import com.frinika.sequencer.gui.Item;
import com.frinika.sequencer.gui.ItemPanel;
import com.frinika.sequencer.gui.ItemScrollPane;
import com.frinika.sequencer.model.EditHistoryListener;
import com.frinika.sequencer.model.MultiEvent;
import com.frinika.sequencer.model.util.EventFilter;
public abstract class PianoRollPanelAdapter extends ItemPanel implements EditHistoryListener,EventFilter {
public PianoRollPanelAdapter(final ProjectContainer project, ItemScrollPane scroller,
boolean hasTimeLine, boolean canScrollY) {
super(project,scroller, hasTimeLine, canScrollY,.5,false);
}
@Override
public double getSnapQuantization() {
return this.project.getPianoRollSnapQuantization();
}
@Override
public void setSnapQuantization(double quant) {
this.project.setPianoRollSnapQuantization(quant);
repaintItems();
}
@Override
public boolean isSnapQuantized() {
return this.project.isPianoRollSnapQuantized();
}
@Override
public void setSnapQuantized(boolean b) {
this.project.setPianoRollSnapQuantized(b);
/*
quantize = b;
if (b)
MultiEventClipboard.getDefaultMultiEventClipboard()
.setQuantization(snaptoQuantization);
else
MultiEventClipboard.getDefaultMultiEventClipboard()
.setQuantization(1);
*/
}
@Override
public void setFocus(Item item) {
this.project.getMultiEventSelection().setFocus((MultiEvent) item);
this.project.getPartSelection().notifyListeners();
}
@Override
public void clientNotifySelectionChange() {
this.project.getPartSelection().notifyListeners();
}
@Override
public void setTimeAtX(int x) {
long tick = screenToTickAbs(x, this.project.isPianoRollSnapQuantized());
this.sequencer.setTickPosition(tick);
}
}