سؤال

هل من الممكن استخدام شريط التقدم مع mxIGraphLayout؟ لديّ رسم بياني يستغرق وقتًا غير تميز للتخطيط ، وأود أن يتمكن المستخدم من رؤية ذلك ، نعم ، يحدث شيء ما.

من الناحية المثالية ، أود أن أقوم بتفسير شيء ما (حتى تقريبًا) كنسبة مئوية ، لكن لا يبدو أن هناك وسيلة لإضافة أي مستمعين يسمى أثناء التخطيط.

إذا كان الأمر مهمًا ، فأنا أستخدم mxOrganicLayout لكنني قد أتغير في المستقبل.

هل كانت مفيدة؟

المحلول

يمكن تحقيق ذلك إلى حد ما عن طريق التمديد mxOrganicLayout والتغلب على الطرق التالية

    @Override
    public void execute(Object cell)
    {
        progress.setProgress(0);
        try
        {
            super.execute(cell);
        }
        finally
        {
            progress.setProgress(maxIterations);
        }

    }

    @Override
    protected void performRound()
    {
        progress.setNote("Iteration " + iteration);
        progress.setProgress(iteration);
        super.performRound();
    }

    final ProgressMonitor progress;

من الواضح أنك تحتاج إلى ضبط progress في مرحلة ما كذلك. execute يخطر مراقبة التقدم التي بدأها التنفيذ ، ويغلقه عندما يتم ذلك.

performRound يتم استدعاؤه للقيام بالتحديثات الفعلية ، وبالتالي فإن زيادة التقدم هناك سيؤدي إلى تقدم شريط التقدم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top