package com.uwsoft.editor.view.ui; import com.badlogic.gdx.utils.Array; import com.commons.MsgAPI; import com.puremvc.patterns.mediator.SimpleMediator; import com.puremvc.patterns.observer.Notification; import com.uwsoft.editor.Overlap2DFacade; import com.uwsoft.editor.renderer.data.SceneVO; import com.uwsoft.editor.utils.Guide; import com.uwsoft.editor.view.stage.Sandbox; /** * Created by azakhary on 7/18/2015. */ public class RulersUIMediator extends SimpleMediator<RulersUI> { private static final String TAG = RulersUIMediator.class.getCanonicalName(); public static final String NAME = TAG; /** * Constructor. */ public RulersUIMediator() { super(NAME, new RulersUI()); } @Override public void onRegister() { facade = Overlap2DFacade.getInstance(); viewComponent.setVisible(false); } @Override public String[] listNotificationInterests() { return new String[]{ MsgAPI.SCENE_LOADED, RulersUI.ACTION_GUIDES_MODIFIED }; } @Override public void handleNotification(Notification notification) { super.handleNotification(notification); SceneVO sceneVO = Sandbox.getInstance().getSceneControl().getCurrentSceneVO(); switch (notification.getName()) { case MsgAPI.SCENE_LOADED: Array<Guide> guides = new Array<>(); for(int i = 0; i < sceneVO.verticalGuides.size(); i++) { Guide tmp = new Guide(true); tmp.pos = sceneVO.verticalGuides.get(i); guides.add(tmp); } for(int i = 0; i < sceneVO.horizontalGuides.size(); i++) { Guide tmp = new Guide(false); tmp.pos = sceneVO.horizontalGuides.get(i); guides.add(tmp); } viewComponent.setGuides(guides); viewComponent.setVisible(true); break; case RulersUI.ACTION_GUIDES_MODIFIED: guides = viewComponent.getGuides(); sceneVO.verticalGuides.clear(); sceneVO.horizontalGuides.clear(); for(int i = 0; i < guides.size; i++) { if(guides.get(i).isVertical) { sceneVO.verticalGuides.add(guides.get(i).pos); } else { sceneVO.horizontalGuides.add(guides.get(i).pos); } } break; } } }