Beispiel #1
0
    public MJADetailView CreateDetailView()
    {
        MJADetailView view = null;

        switch (fieldType)
        {
        case MJAData.Field.ConcertGroup:
            view = new MJADetailViewConcertGroup("Concert Groups");
            break;

        case MJAData.Field.Concert:
            view = new MJADetailViewConcert("Concert");
            break;

        case MJAData.Field.Image:
            view = new MJADetailViewImage("Image");
            break;

        case MJAData.Field.ImageTag:
            view = new MJADetailViewImageTag("ImageTag");
            break;

        case MJAData.Field.Person:
            view = new MJADetailViewPerson("Person");
            break;
        }
        if (view != null)
        {
            view.SetId(CurrentId);
        }
        return(view);
    }
    void Start()
    {
        listView   = new MJAListView("Concert Group ListView");
        detailView = new MJADetailViewConcertGroup("Concert Group DetailView");

        listView.transform.position   = leftPosition;
        detailView.transform.position = spawnPosition;

        OnValidate();

        if (Application.sandboxType != ApplicationSandboxType.NotSandboxed)
        {
            archive.jsonPath = Application.streamingAssetsPath;
        }
        MJAData.archive = archive;
        MJAData.archive.Load();

        if (defaultImagePath.Length > 0 && File.Exists(defaultImagePath))
        {
            MJAData.defaultImageData = File.ReadAllBytes(defaultImagePath);
        }
        else
        {
            Debug.Log("no default image or file not found");
        }

        listView.SetData(MJAData.Field.ConcertGroup, MJAData.archive.concertGroups.GetAllIds(), "All Concert Groups");
        listView.Move(0); // set first entry active
        listView.Update();

        detailView.SetId(listView.CurrentId);
    }
    void Update()
    {
        bool moved = false;

        if (inList)
        {
            if (UnityEngine.Input.GetKeyDown(KeyCode.DownArrow))
            {
                moved = listView.Move(1);
                listView.Update();
            }
            else if (UnityEngine.Input.GetKeyDown(KeyCode.UpArrow))
            {
                moved = listView.Move(-1);
                listView.Update();
            }
            else if (UnityEngine.Input.GetKeyDown(KeyCode.Return))
            {
                inList = false;
                detailView.Move(0);
                listView.Cleanup();
                listView = detailView.CreateListView();
                listView.transform.position = spawnPosition;
                listView.Update();
            }
            if (moved)
            {
                detailView.SetId(listView.CurrentId);
            }
        }
        else
        {
            if (UnityEngine.Input.GetKeyDown(KeyCode.DownArrow))
            {
                moved = detailView.Move(1);
                detailView.Update();
            }
            else if (UnityEngine.Input.GetKeyDown(KeyCode.UpArrow))
            {
                moved = detailView.Move(-1);
                detailView.Update();
            }
            else if (UnityEngine.Input.GetKeyDown(KeyCode.Return))
            {
                inList = true;
                listView.Move(0);
                detailView.Cleanup();
                detailView = listView.CreateDetailView();
                detailView.transform.position = spawnPosition;
                detailView.Reshape();
            }
            if (moved)
            {
                listView.Cleanup();
                listView = detailView.CreateListView();
                listView.transform.position = spawnPosition;
                listView.Update();
            }
        }

        // move the two panels into place
        if (inList)
        {
            listView.transform.position   = Vector3.Lerp(listView.transform.position, leftPosition, 0.2f);
            detailView.transform.position = Vector3.Lerp(detailView.transform.position, rightPosition, 0.2f);
        }
        else
        {
            listView.transform.position   = Vector3.Lerp(listView.transform.position, rightPosition, 0.2f);
            detailView.transform.position = Vector3.Lerp(detailView.transform.position, leftPosition, 0.2f);
        }
    }