Home | History | Annotate | Download | only in flame
      1 package com.badlogic.gdx.tools.flame;
      2 
      3 import java.awt.GridBagConstraints;
      4 import java.awt.Insets;
      5 
      6 import com.badlogic.gdx.graphics.g3d.Model;
      7 import com.badlogic.gdx.graphics.g3d.particles.influencers.ModelInfluencer;
      8 
      9 /** @author Inferno */
     10 public class ModelInfluencerPanel extends InfluencerPanel<ModelInfluencer> implements TemplatePickerPanel.Listener<Model>, EventManager.Listener {
     11 
     12 	TemplatePickerPanel<Model> pickerPanel;
     13 
     14 	public ModelInfluencerPanel (FlameMain editor, ModelInfluencer influencer, boolean single, String name, String desc) {
     15 		super(editor, influencer, name, desc, true, false);
     16 		pickerPanel.setMultipleSelectionAllowed(!single);
     17 		EventManager.get().attach(FlameMain.EVT_ASSET_RELOADED, this);
     18 	}
     19 
     20 	@Override
     21 	public void setValue (ModelInfluencer value) {
     22 		super.setValue(value);
     23 		if(value == null) return;
     24 		pickerPanel.setValue(value.models);
     25 	}
     26 
     27 	protected void initializeComponents () {
     28 		super.initializeComponents();
     29 		pickerPanel = new TemplatePickerPanel<Model>(editor, null, this, Model.class, new LoaderButton.ModelLoaderButton(editor));
     30 		pickerPanel.setIsAlwayShown(true);
     31 		contentPanel.add(pickerPanel, new GridBagConstraints(0, 0, 1, 1, 1, 1, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,
     32 			0, 0, 6), 0, 0));
     33 	}
     34 
     35 	@Override
     36 	public void onTemplateChecked (Model model, boolean isChecked) {
     37 		editor.restart();
     38 	}
     39 
     40 	@Override
     41 	public void handle (int aEventType, Object aEventData) {
     42 		if(aEventType == FlameMain.EVT_ASSET_RELOADED){
     43 			Object[] data = (Object[])aEventData;
     44 			if(data[0] instanceof Model){
     45 				if(value.models.removeValue((Model)data[0], true)){
     46 					value.models.add((Model)data[1]);
     47 					pickerPanel.reloadTemplates();
     48 					pickerPanel.setValue(value.models);
     49 					editor.restart();
     50 				}
     51 			}
     52 		}
     53 	}
     54 
     55 }
     56